c# – 为控件id添加前缀,并且仍然绑定MVC Razor
发布时间:2020-12-15 21:53:19 所属栏目:百科 来源:网络整理
导读:我有一个案例,我有一个显示订单的页面和显示订单详细信息的选项卡.订单详细信息非常复杂,因为它们是相同的布局,我想使用将生成表单的部分视图或编辑器模板. 问题是结果是生成了多个重复的表单输入id(每个订单详细信息一个.例如,我有: foreach (var orderDet
我有一个案例,我有一个显示订单的页面和显示订单详细信息的选项卡.订单详细信息非常复杂,因为它们是相同的布局,我想使用将生成表单的部分视图或编辑器模板.
问题是结果是生成了多个重复的表单输入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.. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |