May*_*ayo 2 asp.net-mvc ienumerable binding controller
我已经看过很多例子(NerdDinner,Sanderson's Sports Store等),其中视图被绑定到一组对象.视图中的语法通常是这样的......
<%@ Page... Inherits="System.Web.Mvc.ViewPage<IEnumerable<MyViewModel>>" %>
...
<% foreach (var myViewModel in Model) { %>
Run Code Online (Sandbox Code Playgroud)
我还看到了很多插入或更新的例子,其中控制器自动将模型参数绑定到视图中的表单元素.
我正在寻找这两种技术的混合,其中我的视图具有与myViewModel集合相关的元素,其中每个myViewModel具有3-4个属性.目的是允许用户一次性输入一组.
假设这是可能的,任何人都可以帮我解释语法吗?我无法弄清楚如何标记表单元素以使绑定工作.
这可以通过内置的模型绑定器实现,但您必须对表单对象进行一些基于约定的命名.首先,您的行动需要采取集合:
[HttpPost]
public ActionResult CreateFoos(List<Foo> foos)
{
// I have a list of the foo objects that were posted
}
Run Code Online (Sandbox Code Playgroud)
然后,在视图中,假设您想为每个对象创建一个表单:
<% for (int i = 0; i < Model.Count; i++) { %>
<%: Html.TextBoxFor(x => x[i].Property1) %>
<%: Html.TextBoxFor(x => x[i].Property2) %>
<%: Html.TextBoxFor(x => x[i].Property3) %>
<% } %>
Run Code Online (Sandbox Code Playgroud)
注意控件在HTML中的呈现方式,因为在"创建"视图中,您可能希望有一个允许用户添加其他记录的javascript按钮,并且您必须增加每个附加控件的索引.这不是太难,但我只是想提醒你注意它实际产生的来源.
| 归档时间: |
|
| 查看次数: |
5394 次 |
| 最近记录: |