我有这个网址:
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 }
);
}
答案 0 :(得分:1)
就像你已经
一样routes.MapRoute(
"publicview",
"publicview/details/{userName}",
new { controller = "publicview", action = "details", userName=UrlParamter.Optional }
);
确保在详细信息操作中调用字符串参数userName,以便填充。
或者您可以删除上述路线并在详细信息操作中将参数更改为id,以便它使用标准路线
小心url中的特殊字符,或.net运行时将启动并向您抛出异常。
http://blogs.iis.net/nazim/archive/2011/04/18/use-of-special-characters-like-in-an-iis-url.aspx