2014-01-11 4 views
2

Я новичок в MVC. В моем приложении страница просмотра, созданная с использованием бритвы, создавая ее из другого конструктора страниц html. У меня есть сомнения в том, как получить доступ к элементам управления html из соответствующего контроллера. Например, я создаю контроллер с именем Home и соответствующим представлением. Добавлено текстовое поле.Доступ к элементам управления в режиме Razor с контроллера MVC4

<input id="name" type="text" name="txtName"/> 

Теперь я хочу получить и установить значение в текстовом поле с контроллера без использования скрипта. Как и

txtName.text="...." 

Это возможно ..?

+0

несколько ... вы используете модель с видом? –

ответ

1

Похоже, вы думаете о вещах с точки зрения веб-форм, например. элементы управления, устанавливающие свойства на стороне сервера.

MVC позволяет намного лучше separation of concerns, то есть каждая деталь должна играть свою роль, не будучи плотно соединенной с другими частями. Наличие контроллера, устанавливающего свойство текстового поля в представлении, означает, что в этом представлении всегда должно быть текстовое поле и будет тесно связывать контроллер с этим конкретным видом. Это невозможно напрямую, и это было бы плохой идеей, даже если бы это было так.

Вот где вид модели поставляются в:

// M - model 
public sealed class MyViewModel 
{ 
    public string Name { get; set; } 
} 

// V - view 
@model MyViewModel 

// (usually code to begin a form goes here) 

@Html.TextBoxFor(o => o.Name) 

// C - controller 
public ActionResult MyActionMethod() 
{ 
    var model = new MyViewModel { Name = "Hello" }; 
    return View(model); 
} 

Может показаться, что дополнительный шаг (это), но она чище, гораздо более гибким, и гораздо более тест удобно.

1

Это возможно только с помощью другого запроса на сервер (например, POST, GET), поскольку код контроллера может работать только на стороне сервера. После обработки другого запроса вы можете использовать ViewModel для заполнения текстового поля HTML при его рендеринге, но я сомневаюсь, что это то, что вы ищете.

Если вы знакомы с программированием на рабочем столе (например, «Формы окна»), и вы хотите немедленно изменить и обработать поля на странице HTML, вам нужно будет использовать JavaScript. Если вы не знакомы с веб-программированием или даже новичок в парадигме MVC, я предлагаю вам попробовать несколько MSDN tutorials.

Смежные вопросы