加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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..

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读