c# – 为控件id添加前缀,并且仍然绑定MVC Razor

c# – 为控件id添加前缀,并且仍然绑定MVC Razor,第1张

概述我有一个案例,我有一个显示订单的页面和显示订单详细信息的选项卡.订单详细信息非常复杂,因为它们是相同的布局,我想使用将生成表单的部分视图或编辑器模板. 问题是结果是生成了多个重复的表单输入id(每个订单详细信息一个.例如,我有: foreach (var orderDetail in Model.OrderDetils){ @Html.EditorFor(model => orderDe 我有一个案例,我有一个显示订单的页面和显示订单详细信息的选项卡.订单详细信息非常复杂,因为它们是相同的布局,我想使用将生成表单的部分视图或编辑器模板.

问题是结果是生成了多个重复的表单输入ID(每个订单详细信息一个.例如,我有:

foreach (var orderDetail in Model.OrderDetils){    @HTML.EditorFor(model => orderDetail,"WorkOrder",orderDetail)}

我已经阅读了很多关于这个并且看到建议使用editortemplate的解决方案,但是该解决方案仅在您具有相同的表单进行渲染时才有效,但是将其传递给不同的模型属性以使控件ID的前缀不同…即. like this solution.

在我的情况下,这将无法工作,因为我传递的模型属性始终是相同的.

那么我怎样才能在部分或编辑器模板中创建也将绑定的唯一ID.

我知道而不是:

@HTML.EditorFor(model => model.WOHdr.Attribute1)

我可以:

@HTML.TextBoxFor(model => model.WOHdr.Attribute1,new { ID = Model.ID + "_Attribute1" })

但是当它传递给控制器​​时它不会绑定.

思考?

解决方法 试试这个

@HTML.TextBoxFor(model => model.WOHdr.Attribute1,new { @ID = @Model.ID + "_Attribute1" })

使用“@”动态值.现在你将获得独特的ID

在EditorFor中你可以像这样使用

@HTML.EditorFor(model => model.WOHdr.Attribute1,null,"ID=" + @Model.ID + "" )

ID将生成这样的

ID="ID_1",ID="ID_2" and so on..
总结

以上是内存溢出为你收集整理的c# – 为控件id添加前缀,并且仍然绑定MVC Razor全部内容,希望文章能够帮你解决c# – 为控件id添加前缀,并且仍然绑定MVC Razor所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1230041.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存