在我的项目中,我使用了许多动态加载的视图/表单。在我的表单中,使用@Html.TextBoxFor()
生成了很多字段,然后在我的javascript逻辑中使用@Html.IdFor(), @Html.NameFor()
。
我的一些视图模型具有相同名称的字段(Id,Name,Description等),因此如果我在1页上有2个具有此类视图模型的表单,那么我有一个问题(相同的id属性用于超过一个元素)。
所以我想知道我是否可以将一些服务器端元数据/属性添加到我的viewmodels中,其前缀将添加到生成的id和名称中?或者,如果有另一个解决方案不需要重命名我的视图模型或视图。
答案 0 :(得分:0)
尝试使用:
@Html.TextBoxFor(m => m.id,new {@class="class",id=[but here the id you want]})
答案 1 :(得分:0)
您可以在javascript代码中使用输入的“name”属性...这些属性会自动生成。
如果你有一个像这样的组合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)
name属性将变为:“Second_Name
”和“Third_Name
”
所以...它不会重复。