我在三个不同的选项卡控件中有3个文本框,我想生成文本框ID,如textbox加上连接选项卡编号
for(int i=0;i<3;i++)
{
<%: Html.TextBoxFor(e=>e.vcr_LinkName + i)%>
}
它无法正常工作,但当我将其更改为
时 for(int i=0;i<3;i++)
{
<%: Html.TextBox("vcr_LinkName" + i)%>
}
它工作正常。但我想使用textboxfor而不是textbox
答案 0 :(得分:1)
您无法以这种方式真正使用textboxfor,因为您在模型上没有要绑定它的属性。但是,您还有其他一些选择。
您可以在模型上有一个字符串列表,并执行以下操作:
for(int i = 0; i < 3; i++)
{
<%:Html.TextBoxFor(x => x.LinkNames[i])%>
}
您可以像这样建立自己的帮手:
public static MvcHtmlString TextBoxWithSuffix<TModel, TProperty>(this HtmlHelper helper, Expression<Func<TModel, TProperty>> expression, string suffix)
{
var id = ExpressionHelper.GetExpressionText(expression);
return helper.TextBox(string.Format("{0}{1}", id, suffix);
}
并像这样使用它:
for(int i = 0; i < 3; i++)
{
<%:Html.TextBoxWithSuffix(x => x.vcr_LinkName, i.ToString())%>
}