你好我有在MVC 3項目具有字典特性如下定義的模型對象:ASP.Net MVC 3字典結合
MyObj.ObjDictionary<string,string>
我有兩個控制器方法,其中一個手柄返回視圖和另一個處理視圖中的POST表單
public ActionResult Scanner(string val_1, string val_2, string val_3)
{
//Fetch sessionObj from Model
MyObj sessionObj = getSessionObj(val_1, val_2, val_3);
//At this point model.ObjDictionary<string,string> contains data
return View(sessionObj);
}
[HttpParamAction]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Scanner(MyObj model)
{
//At this point model.ObjDictionary<string,string> is null
//i.e. binding is not being properly achieved
//Validate POSTed data
}
在視圖中,我遍歷每個鍵 - 值對(kvp)。它必須這樣做,因爲屬性是動態的,我無法知道將會有多少字典值。
@using (Html.BeginForm("Action", "Home"))
{
@foreach (var kvp in Model.ObjDictionary)
{
<span>@Html.Label("Scan " + @kvp.Key)</span>
<span>@Html.TextBox(kvp.Key, "", new { @style = "font-size:Medium;width:400px;" })</span>
}
<input type="submit" name="Cancel" value="Cancel" />
<input type="submit" id="Scanner" name="Scanner" value="Scanner" />
}
目標是爲用戶提供一種輸入數據並將該數據綁定到特定鍵的值的方式。我的問題是,當Model.ObjDictionary被POST時,它是空的。我不確定我做錯了什麼,我讀了this文章,但是這是假設字典中已有的值。 ModelBinder是否可以將用戶輸入的數據綁定到映射到特定鍵的字典值?