在我的视图中,我需要多个输入框来表示动态数量的值。例如,如果我有一个动态数量的输入框(此处显示为http://jsfiddle.net/skip405/9sX6X/6/)。我如何将所有这些值传递给我的控制器?
目前,我的视图中有一个输入框,设置如下:
<div class="col-md-10">
@Html.TextBoxFor(m => m.StudentName, new { @class = "form-control", @id = "current", @name = "content" })
</div>
我的模型定义了StudentName:
[Required]
[Display(Name = "Student name")]
public string StudentName { get; set; }
我的第一个想法是在模型中设置一个数组并将每个数据项存储在其中,尽管我不具备ASP.NET或C#的专业知识来执行此操作。
提前致谢!
答案 0 :(得分:2)
将数据从请求转换为控制器中的操作输入参数的过程称为模型绑定。这里实现了很多灵活性,请参阅Model Binding To A List
基本思想是,如果您有多个具有相同名称的输入,则可以将它们绑定到List<string>
。
更复杂的场景也是可能的:如果你有类似的话
public class Person
{
public int Age{get; set;}
public string Name{get; set;}
}
和行动方法:
public ActionResult DoSomething(List<Person> people)
{
//do something
}
输入字段可以是这样的:
<input type="number" name="[0].Age" />
<input type="number" name="[0].Name" />
<input type="number" name="[1].Age" />
<input type="number" name="[1].Name" />