c#razor mvc textboxfor in-foreach循环
在foreach循环中如何从c#razor mvc textboxfor in-foreach循环,c#,loops,view,model,foreach,C#,Loops,View,Model,Foreach,在foreach循环中如何从TextBoxForhelper检索数据?我的意思是: 他认为: foreach(Language l in ViewBag.Languages){ <td>@l.lang</td> <td>@Html.TextBoxFor(model => model.Name) } 顺便说一下,model.Name在MyModel.cs中定义为: public string Name { get; set; } 您应该
TextBoxFor
helper检索数据?我的意思是:
他认为:
foreach(Language l in ViewBag.Languages){
<td>@l.lang</td>
<td>@Html.TextBoxFor(model => model.Name)
}
顺便说一下,model.Name在MyModel.cs中定义为:
public string Name { get; set; }
您应该能够通过以下方式在操作中使用
ModelBinder
:
public ActionResult MyAction(string[] name)
{
foreach (var item in name)
{
// Process items
}
}
其中,name
是Html.TextBoxFor()
自动为文本框指定的名称
编辑:如果您希望将参数名称从
name
更改为更具描述性的名称,您可以使用Html.TextBox
来实现这一点,尽管不需要大量键入:
@Html.TextBox("SomeMoreDescriptiveName", Model.Name);
然后在控制器操作中:
public ActionResult MyAction(string[] SomeMoreDescriptiveName)
{
...
}
如果我将模型作为参数传递,该怎么办?我的意思是,如果控制器是这样的:public ActionResult(MyModel model),我从模型中获取值?只要您在模型上有
string[]Name{get;set;}
,默认的ModelBinder仍然能够绑定到它。
public ActionResult MyAction(string[] SomeMoreDescriptiveName)
{
...
}
@foreach (var _item in Model.ListSurvey)
{
@Html.TextBoxFor(m=>m.Question, new { Value = @_item.Question })
}