asp.Net   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了asp.net-mvc – 为什么ASP.NET MVC 4与IList for editor不能正确编写索引表示法?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个奇怪的情况,在我的编辑器模板中引用’模型会产生格式错误的索引’名称’字段:

编辑

@model IList<BillingRateItem>

@for (int i = 0;i < this.Model.Count(); i++)
{
    @Html.HiddenFor(m => this.Model[i].billingRateItemID)
}

产生的隐藏字段包括索引之前的一段时间,这是有问题的:

HTML已呈现

<input id="Model_BillingRateItems__0__BillingRateItemID" name="Model.billingRateItems.[0].billingRateItemID" type="hidden" value="9">

我想要的是什么

请注意,’Model.billingRateItems [0]’在名称和索引之间没有句点.这很好!

<input id="Model_BillingRateItems__0__BillingRateItemID" name="Model.billingRateItems[0].billingRateItemID" type="hidden" value="9">

编辑 – 这是调用编辑器的视图的示例

@model BillingRateViewModel // has multiple BillingRateItems

@Html.EditorFor(m=>m.billingRateItems,"BillingRateItemsgrid")

注意:
当我更改编辑器以接受父对象(例如BillingRatE)时,索引工作正常.也许结论只是所有编辑都会以”开头.无论背景如何.在Enumerables的情况下,它将添加’.[].’即使这样做本机模型绑定器也没有帮助重建对象.

解决方法

我不确定你正在使用的MVC程序集的版本是什么问题,但看起来像是一些我无法在Visual studio Extensions and updates菜单中安装的最新版本上重现的错误.

您可以使用@ Html.Hidden以这种方式创建此隐藏字段:

@Html.Hidden("[" + i + "].billingRateItemID",this.Model[i].billingRateItemID);

生成的HTML看起来像,我将成为每个项目的索引,值将采用BillingRateItemID:

<input name="[1].billingRateItemID" type="hidden" value="1">

然后默认的Model Binder将正确地处理列表.

大佬总结

以上是大佬教程为你收集整理的asp.net-mvc – 为什么ASP.NET MVC 4与IList for editor不能正确编写索引表示法?全部内容,希望文章能够帮你解决asp.net-mvc – 为什么ASP.NET MVC 4与IList for editor不能正确编写索引表示法?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。