c# - 将 IEnumeration 项目发布到 Controller

标签 c# asp.net-mvc

我无法找出解决一个相当简单的问题的最佳方法。

我有一个付款 View 模型,其中包含可用付款列表和一些基本属性,例如标题、内容...

因此,在我看来,我使用 @using(Html.BeginForm()) ,并在其中循环付款并渲染每个项目,当然还有我在 Controller 中收到的 View 模型帖子有付款方式的空列表。

我可以看到,如果我使用 for 并打印出 model. paymentMethods[i].Prop ,它就可以映射它,但这是正确的方法还是可以我做了一些更聪明的事情?

最佳答案

为了使模型绑定(bind)器正常工作,您需要使用索引访问。

@foreach (var item in Model.PaymentMethods)
{
    @Html.EditorFor(m => item.Prop);
}

工作。

您需要使用:

@for (int i = 0; i < m.PaymentMethods.Count(), ++i)
{
    @Html.EditorFor(m => m.PaymentMethods[i].Prop);
}

否则模型绑定(bind)器无法在回发中将其映射回。

关于c# - 将 IEnumeration 项目发布到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24886084/

相关文章:

javascript - 如何在javascript中访问对象属性?

javascript - asp.net mvc 脚本和样式引用

c# - 如何在 .NET 中创建包含 'System' 的命名空间而不发生冲突?

c# - 对象引用未设置为对象错误的实例,试图使用 LINQ 递归查找对象

asp.net-mvc - 将 ModelState 错误复制到 TempData 并在 View 中显示它们

c# - Razor View : Minify text with three dots and show full text with tooltip

asp.net-mvc - ASP.NET MVC - Razor View 中的本地时间是在客户端还是服务器上计算的?

c# - MVVM 和 Prism 中的超链接可见性

c# - Visual Studio 项目 : How to include a reference for one configuration only?

c# - 一次更新 MVC 页面的不同部分?