2010-06-08 60 views
1

我有三个不同的选项卡控制3个文本框,我想生成文本ID喜欢文本框加上拼接的标签数量问题在asp.net mvc的文本框

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而不是文本框

回答

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())%> 
}