我想定義一個顯示標籤和複選框列表的視圖,用戶可以更改複選框,然後回發。我有問題發回字典。也就是說,post方法的字典參數爲null。如何爲ASP.NET MVC上的GET和POST操作綁定字典類型參數
下面是操作方法爲GET和POST操作:
public ActionResult MasterEdit(int id)
{
Dictionary<string, bool> kv = new Dictionary<string, bool>()
{
{"A", true},
{"B", false}
};
return View(kv);
}
[HttpPost]
public ActionResult MasterEdit(Dictionary<string, bool> kv)
{
return RedirectToAction("MasterEdit", new { id = 1 });
}
Beliw是視圖
@model System.Collections.Generic.Dictionary<string, bool>
@{
ViewBag.Title = "Edit";
}
<h2>
MasterEdit</h2>
@using (Html.BeginForm())
{
<table>
@foreach(var dic in Model)
{
<tr>
@dic.Key <input type="checkbox" name="kv" value="@dic.Value" />
</tr>
}
</table>
<input type="submit" value="Save" />
}
任何想法將是非常非常感謝!
Darin Dimitrov,感謝您的建議。爲什麼我們需要MyViewModel.cshtml上的兩個ID? – Pingpong
@Pingpong,一個是將其顯示爲文本,另一個顯示爲隱藏字段,以便在回發時將其發送到服務器,以便正確填充視圖模型。 –
謝謝你的建議。有用。如果從控制器傳遞給查看的數據是包含集合的自定義類型,該怎麼辦?謝謝! – Pingpong