Asp.net mvc 4 控制器的特定路由
我有这个网址:Asp.net mvc 4 控制器的特定路由,asp.net-mvc-4,asp.net-mvc-routing,Asp.net Mvc 4,Asp.net Mvc Routing,我有这个网址: http://localhost:3256/publicview/details?username=mvcpro4 http://localhost:3256/publicview/details/mvcpro4 它工作并返回包含数据的视图 我想将其作为此url: http://localhost:3256/publicview/details?username=mvcpro4 http://localhost:3256/publicview/details/mvcpro4
http://localhost:3256/publicview/details?username=mvcpro4
http://localhost:3256/publicview/details/mvcpro4
它工作并返回包含数据的视图
我想将其作为此url:
http://localhost:3256/publicview/details?username=mvcpro4
http://localhost:3256/publicview/details/mvcpro4
这不起作用,当它获取控制器时,用户名参数为空
我需要如何配置publicview路由,以便它不会破坏默认路由
我有这些路线
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"publicview",
"publicview/details",
new { controller = "publicview", action = "details" }
);
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
就像你已经做过的一样
routes.MapRoute(
"publicview",
"publicview/details/{userName}",
new { controller = "publicview", action = "details", userName=UrlParamter.Optional }
);
确保在详细信息操作中调用字符串参数userName,以便填充它
或者,您可以删除上述路由,并在“详细信息”操作中将参数更改为id,使其使用标准路由
注意url中的特殊字符,否则.net运行时将启动并向您抛出异常