0

我在客户端计算机上部署的网站上遇到错误。起初,根据我对问题的回答,我认为这是由 Windows 身份验证和多个错误提供程序引起。但是我添加了Elmah来登录客户端并注意到一个模式....

控制器签名是:

public ActionResult Class(int subjectId, int classGroupId)

elmah 日志中列出了失败的请求:

HTTP_REFERER - https://someUrl.com/Results/Class/4372/16202

但是路径信息只有一个参数。

PATH_INFO - /Results/Class/4372/

错误信息是

System.ArgumentException 参数字典包含“MyNamespace.Controllers.ResultsController”中方法“System.Web.Mvc.ActionResult Class(Int32, Int32)”的不可为空类型“System.Int32”的参数“subjectId”的空条目. 可选参数必须是引用类型、可空类型或声明为可选参数。参数名称:参数

所以在某个地方我丢失了一个参数。奇怪的是错误消息说缺少第一个参数而不是第二个参数。

我为此操作设置了一条路线:

 routes.MapRoute(
     "ClassResults", // Route name
     "{controller}/{action}/{subjectId}/{classGroupId}", // URL with parameters
     new { controller = "Results", action = "Class" } // Parameter defaults
 );

我该如何调试这个错误,我应该看什么来确定问题是什么?

4

0 回答 0