2

在我的项目中,我使用了很多动态加载的视图/表单。在我的表单中,有很多字段是通过使用生成的@Html.TextBoxFor(),然后@Html.IdFor(), @Html.NameFor()在我的 javascript 逻辑中使用。

我的一些视图模型具有相同名称的字段(ID、名称、描述等),因此如果我在 1 页上有 2 个具有此类视图模型的表单,那么我就有问题(相同的 id 属性用于多个元素) .

所以我想知道是否可以将一些服务器端元数据/属性添加到我的视图模型中,并带有将添加到生成的 ID 和名称的前缀?或者,如果有另一个不需要重命名我的视图模型或视图的解决方案。

4

2 回答 2

0

您可以在 javascript 代码中使用输入的“名称”属性……这些属性是自动生成的。

如果您有这样的组合 ViewModel:

public class MyViewModel{
   public MySecondModel Sencond {get; set;}
   public MySecondModel Third {get; set;}
}

public class MySecondModel {
   public string Name {get; set;}
   public string Description {get; set;}
}

然后你在你的视图中使用它,如下所示:

@Html.TextBoxFor(x => x.Second.Name)
@Html.TextBoxFor(x => x.Third.Name)

名称属性将变为:“ Second_Name”和“ Third_Name

所以......它不会重复。

于 2014-01-18T13:55:18.733 回答
0

尝试使用:

    @Html.TextBoxFor(m => m.id,new {@class="class",id=[but here the id you want]})
于 2014-01-18T12:56:00.540 回答