Asp.net mvc 如何使此路由在我的ASP.NET MVC应用程序中工作?
我想要一条这样的路线: MyController/Action/categoryid/productid 因此,我在Global.asax文件中做了以下操作:Asp.net mvc 如何使此路由在我的ASP.NET MVC应用程序中工作?,asp.net-mvc,asp.net-mvc-routing,Asp.net Mvc,Asp.net Mvc Routing,我想要一条这样的路线: MyController/Action/categoryid/productid 因此,我在Global.asax文件中做了以下操作: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default", // Route name
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{categoryid}/{productid}",
new { controller = "MyController",
action = "Action",
categoryid = UrlParameter.Optional,
productid = UrlParameter.Optional
}
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}",
new { controller = "Home",
action = "Index",
id = UrlParameter.Optional
} // Parameter defaults
);
}
但是当我浏览到Mycontroller/action/2/3时,找不到资源。Phil Haack有一个很棒的工具,你可以在地址栏中键入各种URL来查看哪个路由匹配。Phil Haack有一个很棒的工具,你可以在地址栏中键入各种URL来查看哪个路由匹配。此代码是如何生成的?将Default定义为路由名称两次必须停止对其进行编译 将其中一个重命名为其他名称,它必须工作 您的操作可能有其他参数,或者您已经将[HttpPost]定义为属性,并且您正在使用GET。这段代码是如何生成的?将Default定义为路由名称两次必须停止对其进行编译 将其中一个重命名为其他名称,它必须工作 您的操作可能有其他参数,或者您已将[HttpPost]定义为属性,并且您正在使用GET。这是您想要的: {MyController}/{action}/{categoryid}/{productid} 但是应该给Url中的MyController/Action部分起一个更有意义的名字,比如Users/Edit/2/3这是您想要的: {MyController}/{action}/{categoryid}/{productid}
但是应该给你的MyController/Action部分的Url起一个更有意义的名字,比如Users/Edit/2/3Yes!我确实有一些有意义的名字!这只是为了张贴在这里。这是我想要的,但什么是你的解决方案!好的,然后看看其他答案中提到的路由调试器。这是一个伟大的工具。是的!我确实有一些有意义的名字!这只是为了张贴在这里。这是我想要的,但什么是你的解决方案!好的,然后看看其他答案中提到的路由调试器。这是一个伟大的工具。是的!你答对了!我对路线使用了重复的名称!是的!你答对了!我对路线使用了重复的名称!