3
在我们的MVC应用程序,我们有一个路线定义如下:处理无效的MVC参数
routes.MapRoute("ViewUser", "ViewUser/{userId}", new { controller = "general", action = "viewuser", userId = 0 });
的userid但是偶尔定义为一个非可空类型为int,具有默认值为0,我们发现,谷歌广告机器人会因为一些未知的原因将该页面称为/ViewUser/phptest.php。这导致500错误:
The parameters dictionary contains a null entry for parameter 'userId' of non-nullable type 'System.Int32'
对于现在,如果我们忽视的事实是谷歌正试图抓取无效的URL,反正是有强制404,而不是500错误?我能想到的是完全删除默认路由,并指定路由约束
你可以做到这一点'{用户名:INT}'也 – CodeNotFound
如果我没错误这个选项只在ASP.NET MVC 5中添加了。 –
在版本5中是的。的确。 – CodeNotFound