我有一个这样的 RouteConfig
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index"}
);
}
}
但是当我尝试使用“http://example.com/controllername/action/166699406”时。它收到以下错误。我想要实现的是,我想让 id 参数成为强制性的。如果他们在 url 中没有 id 参数,它不应该命中路由并且应该显示 404。我知道我们可以通过空检查 Controller 中的参数来实现这一点。有什么方法可以在路由配置本身中进行管理。
No route in the route table matches the supplied values.
Exception Details: System.InvalidOperationException: No route in the route table matches the supplied values.
最佳答案
你应该在 web.confing 中而不是在路由中处理它。
<customErrors mode="On" defaultRedirect="/error/default">
<error statusCode="403" redirect="/error/restricted"/>
<error statusCode="404" redirect="/Default/DefaultRoute"/>
<error statusCode="500" redirect="/error/problem"/>
</customErrors>
关于c# - Asp.net MVC4 强制路由参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24283373/