假设我们MainViewModel
包含ItemViewModel
的集合,如下所示:
public class MainViewModel
{
public IList<ItemViewModel> Items { get; set; }
}
public class ItemViewModel
{
public string Name { get; set; }
}
并且,我想为该模型呈现表单,然后我有一些这样的事情:
@for (int i = 0; i < Model.Items.Count; i++)
{
int index = i;
@Html.TextBoxFor(x => x.Items[index].Name)
}
将生成以下html:
<input id="Items_0__Name" name="Items[0].Name" type="text" value="">
<input id="Items_1__Name" name="Items[1].Name" type="text" value="">
...
我的问题是,如果ASP MVC公开任何帮助方法来呈现id
和name
字符串,我的意思是这些字符串:
Items_0__Name //id
Items[0].Name //name
我知道我有很多方法,它允许我手动生成属性路径,但我正在寻找一些原生的东西,来自asp mvc。我不想重写框架。
我也知道提出的设计不是最好的!当然,我想改变它!但是现在我需要处理它。
答案 0 :(得分:-1)
您可以使用TextBoxFor方法的htmlAtributes
@Html.TextBoxFor(x => x.Items[index].Name, new { id=/*your id*/ , name=/*your name*/} )