使用 HTML.TextBoxFor 循环遍历模型中的项目 [重复]

Posted

技术标签:

【中文标题】使用 HTML.TextBoxFor 循环遍历模型中的项目 [重复]【英文标题】:Using HTML.TextBoxFor to loop through items in a model [duplicate] 【发布时间】:2016-07-05 14:16:56 【问题描述】:

可能是一个愚蠢的问题,但我是 MVC 新手。

到目前为止,在我的 Razor 中,我可以说 @html.TextBoxFor(t => t.EmailAddress) 但现在我有一个 for-each:

foreach(var q in Model.Questions)

  // so here the t => t.EmailAddress  syntax is not working anymore.

我在上面的代码示例中提出了我的问题。因此,当我在 for-each 循环中时,如何使用 @HTML.TextBox ?因为现在它不再获得 lambda 语法了。

【问题讨论】:

使用for 循环(foreach 不起作用)-refer this answer 【参考方案1】:

不要使用foreach,因为这会在您尝试将输入绑定回模型时导致问题。而是使用for 循环:

for (var i = 0; i < Model.Questions.Count(); i++) 
    @Html.TextBoxFor(m => m.Questions[i])

另见Model Binding to a List MVC 4。

【讨论】:

如何将两个文本框绑定到两个不同的属性。【参考方案2】:

您必须使用for 循环来完成此操作,因为您需要将元素的实际索引绑定到name 属性,该属性用于确保您的值正确发布到服务器:

@for (var q = 0; i < Model.Questions.Count(); q++)  
    // This will bind the proper index to the appropriate name attribute
    @Html.TextBoxFor(x => x.Questions[q])

【讨论】:

以上是关于使用 HTML.TextBoxFor 循环遍历模型中的项目 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery datepicker 从 ASP MVC @Html.TextBoxFor 控件中删除时间

如何使用输入类型 = 日期的 Html.TextBoxFor? [复制]

MVC 和 Razor 中 Html.TextboxFor 和 Html.EditorFor 的区别

如何在 Html.TextBoxFor 中格式化 DateTimeOffset?

Html.TextBoxFor 中的必需值

Html5 data-* with asp.net mvc TextboxFor html属性