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

au.*_*.tw 0 .net c# 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" />
}
Run Code Online (Sandbox Code Playgroud)

和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" />
Run Code Online (Sandbox Code Playgroud)

我的控制器:

[HttpPost]
public ActionResult CarAddStudent(object model) {
    return View("Another");
}
Run Code Online (Sandbox Code Playgroud)

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

kin*_*ing 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" />
Run Code Online (Sandbox Code Playgroud)

和你的控制器:

[HttpPost]
public ActionResult CarAddStudent(List<int> class,List<int> item) {
    return View("Another");
}
Run Code Online (Sandbox Code Playgroud)

顺便说一下,我猜"class"和"item"是关系型的,所以你可能需要使用模型列表来接收,如下所示:

<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" />
Run Code Online (Sandbox Code Playgroud)

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

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

class和item是Student Class的属性