我有以下视图模型MVC3不能领型回控制器
public class RecommendationModel
{
public List<CheckBoxItem> CheckBoxList { get; set; }
}
public class CheckBoxItem
{
public string Text { get; set; }
public bool Checked { get; set; }
public string Link { get; set; }
}
用下面查看
model Sem_App.Models.RecommendationModel
@using (Html.BeginForm())
{
for (int i = 0; i < Model.CheckBoxList.Count(); i++) {
@Html.CheckBoxFor(m => m.CheckBoxList[i].Checked)
@Html.DisplayFor(m => m.CheckBoxList[i].Text)
}
<input type="submit" value="Add To Playlist" />
}
用下面控制器动作
//get
public ActionResult Recommendation()
{
RecommendationModel model = new RecommendationModel();
model.CheckBoxList = new List<CheckBoxItem>();
return PartialView(model);
}
//post
[HttpPost]
public ActionResult Recommendation(RecommendationModel model)
{
foreach (var item in model.CheckBoxList)
{
if (item.Checked)
{
// do something with item.Text
}
}
}
问题是每当我选择一些项目,然后按提交按钮返回的模型将CheckBoxList视为空。我怎样才能改变我的观点来返回CheckBoxList的列表?试图 @Html.HiddenFor(m => m.checkBoxList)
我没有工作
奏效!但现在我得到我的控制器中的CheckBoxItem.Link和CheckBoxItem.Text空值有什么想法?我更新了我的控制器 – user972616 2012-03-26 01:03:30
查看“DisplayFor”输出的HTML,[此方法呈现表示属性值的字符串。](http://msdn.microsoft.com/zh-cn/library/ee407390%28v = vs.98%29.aspx)当您POST表单时,此值不会像其他表单输入(和隐藏字段)一样发送回控制器。 MVC需要从这篇文章中的已知数据重建模型......请记住,MVC是无状态的(再见viewstate)。 – felickz 2012-03-26 04:19:05