用于ViewModel属性路径呈现的ASP MVC本机助手

时间:2015-04-27 15:50:03

标签: c# asp.net asp.net-mvc asp.net-mvc-4

假设我们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公开任何帮助方法来呈现idname字符串,我的意思是这些字符串:

Items_0__Name //id
Items[0].Name //name

我知道我有很多方法,它允许我手动生成属性路径,但我正在寻找一些原生的东西,来自asp mvc。我不想重写框架。

我也知道提出的设计不是最好的!当然,我想改变它!但是现在我需要处理它。

1 个答案:

答案 0 :(得分:-1)

您可以使用TextBoxFor方法的htmlAtributes

@Html.TextBoxFor(x => x.Items[index].Name, new { id=/*your id*/ , name=/*your name*/} )