首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET MVC -使用IEnumerable模型插入或更新视图

ASP.NET MVC -使用IEnumerable模型插入或更新视图
EN

Stack Overflow用户
提问于 2010-09-24 03:40:25
回答 2查看 5.6K关注 0票数 2

我见过很多例子(NerdDinner、Sanderson's Sports Store等)。其中视图被绑定到对象的集合。视图中的语法通常如下所示...

代码语言:javascript
复制
<%@ Page... Inherits="System.Web.Mvc.ViewPage<IEnumerable<MyViewModel>>" %>
...
<% foreach (var myViewModel in Model) { %>

我还看到了大量的插入或更新示例,其中控制器自动将模型参数绑定到视图中的表单元素。

我正在寻找两种技术的混合,其中我的视图具有与myViewModels集合相关的表单元素,其中每个myViewModel都有3-4个属性。其目的是允许用户在一次拍摄中输入一组这些内容。

假设这是可能的,有人能帮我解决语法问题吗?我不知道如何标记表单元素才能使绑定工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-24 03:54:41

明确的答案在这里:http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

您需要为每个字段命名,就好像它是数组的一部分:"PropertyNamei“

票数 3
EN

Stack Overflow用户

发布于 2010-09-24 04:02:09

这可以通过内置的模型绑定器来实现,但是您必须对表单对象进行一些基于约定的命名。首先,您的操作需要获取一个集合:

代码语言:javascript
复制
[HttpPost]
public ActionResult CreateFoos(List<Foo> foos)
{
   // I have a list of the foo objects that were posted
}

然后,在视图中,假设您想为每个对象创建一个表单:

代码语言:javascript
复制
<% 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) %>
<% } %>

请注意控件在HTML中是如何呈现的,因为在“创建”视图中,您可能希望有一个允许用户添加另一个记录的javascript按钮,并且您必须为每个额外的控件增加索引。这并不是很难,但我只是想警告您注意它实际生成的源代码。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3781935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档