我收到错误:System.ArgumentException:参数字典包含方法'System.Web.Mvc.ActionResult Edit(Int32,System)的非可空类型'System.Int32'的参数'id'的空条目.String,Int32,System.String)'遍布我的elmah日志。
它还会记录URL并显示参数ID:https://removed.site/removedController/Edit/2973962?eid=000003879145&orgUnitId=26189&page=index&PageSize=100&PageNumber=1&Filter=Active
上述网址中的参数id = 2973962。我看过很多帖子说要使用int?而不是动作参数中的int,如果我传递null,我会同意这是解决方案。但是我不确定在这种情况下该怎么做。
此外,值得注意的是,我没有看到(或有任何用户抱怨)此错误,除了在错误日志中看到它们。
编辑*
我现在认为这是在20分钟IIS会话超时后发生的。用户转到页面,离开计算机20多分钟,尝试提交表单,服务器将它们发送到GET而不是POST操作。我能够用这种方法重现错误。
这是否正确,会话状态丢失后服务器是否会重定向到GET?有没有人建议提高20分钟的IIS会话超时,如果有的话,提出什么?