4

我有一个案例,我有一个显示订单的页面和显示订单详细信息的选项卡。订单细节非常复杂,因为它们是相同的布局,我想使用部分视图或编辑器模板来生成表单。

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

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

我已经阅读了很多关于此的内容并查看了建议使用编辑器模板的解决方案,但该解决方案仅在您具有相同的表单要呈现但传递不同的模型属性时才有效,因此控件 ID 的前缀会有所不同......即. 喜欢这个解决方案

就我而言,这不起作用,因为我传递的模型属性总是相同的。

那么我还能如何在也将绑定的部分或编辑器模板中创建唯一 ID。

我知道而不是:

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

我可以:

@Html.TextBoxFor(model => model.WOHdr.Attribute1, new { id = Model.Id + "_Attribute1" })

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

想法?

4

2 回答 2

1

尝试这个

@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..
于 2013-07-12T06:57:32.557 回答
0

<input id="Checkbox1_@(test.TestId)" type="checkbox" />

我希望上面的代码对你有帮助

于 2015-06-25T05:47:00.620 回答