.net MVC Controller接收动态表单字段提交的值?

时间:2016-12-16 07:56:22

标签: c# .net asp.net-mvc razor

@foreach (var item in b)
{
    itemCount++;
    <input type="hidden" name="class@(itemCount.ToString())" value="@item.CouseClassId" />
    <input type="hidden" name="item@(itemCount.ToString())" value="@item.AnotherId" />
}

,html就像:

    <input type="hidden" name="class1" value="123" />
    <input type="hidden" name="item1" value="456" />
    <input type="hidden" name="class2" value="789" />
    <input type="hidden" name="item2" value="1011" />

我的控制器:

[HttpPost]
public ActionResult CarAddStudent(object model) {
    return View("Another");
}

在方法控制器中,我如何声明模型类型,我将从Razor收到动态值?

1 个答案:

答案 0 :(得分:5)

您可以使用列表来接收它们 像这样

<input type="hidden" name="class[0]" value="123" />
<input type="hidden" name="item[0]" value="456" />
<input type="hidden" name="class[1]" value="789" />
<input type="hidden" name="item[1]" value="1011" />

和您的控制人员:

[HttpPost]
public ActionResult CarAddStudent(List<int> class,List<int> item) {
    return View("Another");
}
顺便说一句,我想那是&#34; class&#34;和&#34;项目&#34;是关系型的,所以您可能需要使用模型列表来接收,如下所示:

<input type="hidden" name="student[0].class" value="123" />
<input type="hidden" name="student[0].item" value="456" />
<input type="hidden" name="student[1].class" value="789" />
<input type="hidden" name="student[1].item" value="1011" />

然后,您的接收模型应该是这样的:

[HttpPost]
public ActionResult CarAddStudent(List<Student> student) {
    return View("Another");
}

class和item是Student Class

的属性