...-6ren">
gpt4 book ai didi

asp.net-mvc - ASP.NET MVC - 使用 IEnumerable 模型插入或更新 View

转载 作者:行者123 更新时间:2023-12-02 19:49:01 25 4
gpt4 key购买 nike

我见过很多将 View 绑定(bind)到对象集合的示例(NerdDinner、Sanderson's Sports Store 等)。 View 中的语法通常是这样的......

<%@ Page... Inherits="System.Web.Mvc.ViewPage<IEnumerable<MyViewModel>>" %>
...
<% foreach (var myViewModel in Model) { %>

我还看到了大量插入或更新的示例,其中 Controller 自动将模型参数绑定(bind)到 View 中的表单元素。

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

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

最佳答案

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

[HttpPost]
public ActionResult CreateFoos(List<Foo> foos)
{
// I have a list of the foo objects that were posted
}

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

<% 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 中的呈现方式,因为在“创建” View 中,您可能需要一个 javascript 按钮来允许用户添加另一条记录,并且您必须增加索引每个附加控制。这并不太难,但我只是想警告您注意它实际生成的源。

关于asp.net-mvc - ASP.NET MVC - 使用 IEnumerable 模型插入或更新 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3781935/

25 4 0