当缺少asp.net mvc的参数时自动抛出404错误

Tom*_*nto 12 c# asp.net-mvc

当谷歌机器人出现时,我收到了以下错误:

参数字典包含非可空类型'System.Int32'的参数'id'的空条目,用于'someclass'中的方法'System.Web.Mvc.ActionResult Show(Int32)'.可选参数必须是引用类型,可空类型,或者声明为可选参数.
参数名称:参数

我想知道在这种情况下是否有可能让应用程序抛出404而不是缺少参数异常.

谢谢!

更新以澄清我想要的是,此特定错误的所有情况都会抛出404错误而不是500错误.最好通过编写某种只捕获此错误的包装器.

小智 8

public ActionResult Index(int? id)
{
   if(!id.HasValue())
   {
     throw new HttpException(404, "Are you sure you're in the right place?");
   }
}
Run Code Online (Sandbox Code Playgroud)

  • 这有效,但您必须将此代码放入*every*action方法中.是不是有更好的方法集中做到这一点? (4认同)

Wya*_*ett 5

您正在寻找的是路线限制.