使用 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 的区别