2009-09-25 4 views
0

У меня есть текстовое поле внутри формы.привязка модели в mvc

[Просмотр]

<%=html.textbox("name") %> 

[Controller]

Index(string name) 
    { 
    name = "something"; 
    return View(); 
    } 

По форме Submit В этом случае без отправки ViewData значения текстового поля является maintained.But значения "что-то" не устанавливает вверх.

Но WHN я изменить действие на [Controller]

Index() 
{ 
string name="something"; 
return view(); 
} 

значение не поддерживается.

На самом деле, наблюдая за этим параметром.

+4

Этот код не компилируется и не имеет никакого смысла для меня как псевдокод. Это поможет, если вы покажете фактический код, который используете. –

ответ

0

Если вы хотите установить данные для Html.TextBox («Name») в ViewData использования контроллера [ «имя»] = «что-то»

0

Ваш вопрос не очень понятно, и ваш пример кода не на самом деле добавив что-нибудь в ViewData или в Model View - вот выстрел в то, что я думаю, что вы пытаетесь сделать ...

Предполагая, что вы хотите повторно заполнить форму, и ваш вид сильно набрал, вы сделали бы что-то вроде этого:

public ActionResult Index(String name) 
{ 
    MyModel model = new MyModel; 
    model.Name = name; 
    ViewData.Model = model; 
    return View(); 
} 

Введите текст с картинки с похожими названиями будет тогда иметь значение автоматического населенную от модели

<%= html.textbox("Name") %> 

Проводка формы затем помещают объект модели к контроллеру, как это:

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Index(MyModel model) 
{ 
    // do something with the model   
    ViewData.Model = model; 
    return View(); 
} 

, а затем повторно заполнить форму с данными модели ,

0

Строковое имя в вашем действии индекса в контроллере, отображается на форму FormValue, если вы меняете это, MVC понимает, что ему нужно добавить значение из FormValueCollection в текстовое поле, и вы изменили его в своем действии Index , Если вы объявляете переменную самостоятельно, это не работает, потому что нет привязки к значениям формы.

+0

, но я изменяю значение внутри действия i, которое не отражается в представлении. в случае Индекс (наименование строки) { name = "somethng"; return view(); } , но строка «somethng» не отражает. – Santhosh

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