2009-09-25 116 views
0

我在窗體中有一個文本框。mvc中的模型綁定

[查看]

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

[控制器]

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

在表單提交 在這種情況下,不發送任何ViewData的文本框的值maintained.But值 「東西」 是不是設置向上。

但是WHN i中的操作變更爲 [控制器]

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

的值沒有被維持。

真的wat在那個參數上發生。

+4

這段代碼不會編譯,對我來說也不是有意義的僞代碼。如果您顯示您正在使用的實際代碼,這將有所幫助。 – 2009-09-25 13:48:44

回答

0

如果你想設置的控制器使用的ViewData的html.textbox數據(「名稱」)[「名稱」] =「東西」

0

你的問題不是很清楚,你的代碼示例是不實際添加任何東西到ViewData或視圖模型 - 這是我認爲你想要做什麼的一個鏡頭...

假設你想重新填充窗體並且你的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

控制器中的Index操作中的字符串名稱映射到FormValue,如果更改此設置,MVC會明白它需要將FormValueCollection中的值添加到文本框中,並且您已在Index操作中更改了該值。如果你自己聲明一個變量,這是行不通的,因爲沒有綁定到formvalues。

+0

但我改變了行動內的價值,我不反映在視圖中。 在這種情況下 索引(字符串名稱) { name =「somethng」; return view(); } 但字符串「somethng」不反映在視圖中.. – Santhosh 2009-09-25 15:02:40