C# 将显式参数添加到Html.BeginForm()后,ModelBinder无法工作
在控制器中,我从视图的POST方法中获取C# 将显式参数添加到Html.BeginForm()后,ModelBinder无法工作,c#,asp.net-mvc,model-binding,modelbinder,C#,Asp.net Mvc,Model Binding,Modelbinder,在控制器中,我从视图的POST方法中获取StudentID。基本上,路线是: public ActionResult Edit(int? StudentID) {} 在视图中,我有一个隐藏字段来提供StudentID。当我更改行时,在View()中出现以下情况的原因是什么: using(Html.BeginForm()) { //... } 到 ModelBinder停止绑定StudentID。当我提交表格时,我收到的是null而不是正确的学生ID。您可以包含完整的控制器和视图代码吗?您模型
StudentID
。基本上,路线是:
public ActionResult Edit(int? StudentID) {}
在视图中,我有一个隐藏字段来提供StudentID
。当我更改行时,在View()中出现以下情况的原因是什么:
using(Html.BeginForm()) { //... }
到
ModelBinder
停止绑定StudentID
。当我提交表格时,我收到的是null
而不是正确的学生ID。您可以包含完整的控制器和视图代码吗?您模型中的隐藏字段是否已明确填充?如前所述,如果StudentID是路由已知的命名参数,它可能是从url/querystring绑定的。我现在无法确认这一点,因为我无法访问VS2010,但我刚刚在视图中发现,HiddenFor()
字段在using(BeginForm()){}
子句之外。这可能是我问题的原因吗?已确认!我不小心使用(Html.BeginForm()){}将隐藏字段移到了之外。
using (Html.BeginForm("Edit", "Students", FormMethod.Post, new { @class = "form-horizontal" }))