2010-06-08 44 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())%> 
}