Asp.net mvc 如果参数类型错误,则返回404
我想知道是否有一些通用的方法来解决我的问题。假设我的一些操作期望传递Id参数,但在某个时刻,用户可能会尝试将Id参数的字符串分配到URL中。结果,我们的操作没有被激发,基类中抛出了500个异常。有没有办法解决这个问题并抛出404异常?您可以在路由上设置约束。你可以在这里找到一个很好的教程 然后放置字符串而不是id将与路由不匹配Asp.net mvc 如果参数类型错误,则返回404,asp.net-mvc,http-status-code-404,Asp.net Mvc,Http Status Code 404,我想知道是否有一些通用的方法来解决我的问题。假设我的一些操作期望传递Id参数,但在某个时刻,用户可能会尝试将Id参数的字符串分配到URL中。结果,我们的操作没有被激发,基类中抛出了500个异常。有没有办法解决这个问题并抛出404异常?您可以在路由上设置约束。你可以在这里找到一个很好的教程 然后放置字符串而不是id将与路由不匹配 替代方法是在MVC/webapi中创建一个异常过滤器来处理所有异常并查找条件,或者创建一个自定义路由处理程序。您希望如何处理路由信息?配置路由该路由由默认控制器/操作配
替代方法是在MVC/webapi中创建一个异常过滤器来处理所有异常并查找条件,或者创建一个自定义路由处理程序。您希望如何处理路由信息?配置路由该路由由默认控制器/操作配置,如果操作应为索引(int Id)。如果我输入URL/controller/action?id=abc,我会得到500个例外我以前没有尝试过这个,但是你能设置一个单独的路由规则,它包含一个字符串,然后从规则路由到的操作返回一个404吗?嗨,一般来说这应该行得通。另一件事是如果我有250条路线,用几个参数为每条路线再创建1000条。。。有什么普遍的解决办法吗?在基类中的某个地方讨论这个问题?好的,是的,在这种情况下,它不会太实际。您可能可以在路由领域的某个地方扩展某个东西来更改默认行为,但我从未涉足过。希望有更多知识的人会加入进来。