【发布时间】:2010-10-11 11:09:12
【问题描述】:
结论在图片中,可以在底部找到
我在了解 Forms 在 MVC 中的工作方式时遇到了一些麻烦(因为我是一名 WebForms 开发人员,并且真的想在一个大项目中开始使用 MVC)
我采用了 MVC2 Web 项目并向其中添加了一个简单的 ViewModel
namespace TestForms.Models
{
public class myFormViewModel
{
public myFormViewModel() { this.Options = new List<myList>(); }
public string Name { get; set; }
public string Email { get; set; }
public List<myList> Options { get; set; }
}
public class myList
{
public myList() { this.Value = this.Name = ""; this.Required = false; }
public string Name { get; set; }
public string Value { get; set; }
public string Type { get; set; }
public bool Required { get; set; }
}
}
创建了一个强类型视图,将一个新对象传递给视图并运行它。
当我按下提交时,它不会返回 Options 部分中的内容...我该如何绑定它?
我的看法
alt text http://www.balexandre.com/temp/2010-10-11_1357.png
填写生成的表格
alt text http://www.balexandre.com/temp/2010-10-11_1353.png
当我按下 提交 时,Options 部分不会传递给模型! 我忘记了什么?
alt text http://www.balexandre.com/temp/2010-10-11_1352.png
结论
改变 View 循环来分配序号,我们现在有了
<%= Html.TextBox("model.Options[" + i + "].Value", option.Value)%>
model 是我们传递给视图的模型变量的名称
Options 是 List 类型的属性名称
然后我们使用属性名
【问题讨论】: