控制器具有Authorize
属性和两个用于获取和发布的操作
[Authorize]
public class MyController
{
[HttpGet]
public ActionResult Edit(int id){
...
}
[HttpPost]
public ActionResult Edit(MyModel model){
...
}
}
当会话过期且用户提交表单时,returnUrl
包含MyController.Edit
(没有ID),并在登录后尝试重定向到它。由于我在get操作中需要id
参数,因此我有以下错误
System.ArgumentException参数字典包含null 非可空类型'System.Int32'的参数'id'的条目 方法'System.Web.Mvc.ActionResult.Edit(Int32)。
这个问题有什么共同的解决方案吗?我不希望我的所有get操作都有 nullable id
参数,并检查它是否有价值。
编辑:我的表单html如下所示:
@using (Html.BeginForm("Edit", "MyConroller", FormMethod.Post, new { enctype = "multipart/form-data", @class = Model.IsReadonly ? "ro-container" : "track-changes"}))
{}