ASP.NET MVC路由 - “空白”路由
问题描述:
我可以设置一个路由,从这样的根级URL映射吗?ASP.NET MVC路由 - “空白”路由
我使用的是内置的Web服务器的VS2010。
试图建立一个路由一个空白或单斜杠URL字符串不起作用:
routes.MapRoute(
"Default",
"/",
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
这导致错误“路径URL不能以‘/’或' 〜'字符,它不能包含'?'字符。”。提前致谢!我的整个路由定义在这里:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"EditingTitles", // Route name
"{controller}/{action}/{startingLetter}", // URL with parameters
new { controller = "Admin", action = "Index", startingLetter = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
答
你想在这里实现什么......一个像这样的URL? http://www.acme.com/?因为如果你是这样,当没有指定任何参数时,默认路由就会实现。
// Default Route:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = String.Empty } // Parameter defaults
);
答
使用ASPNET MVC5: RouteConfig.cs文件:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Homepage",
url: "",
defaults: new { controller = "Content", action = "Index" }
);
routes.MapRoute(
name: "foo",
url: "bar",
defaults: new { controller = "Content", action = "Index" }
);
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{title}",
defaults: new { controller = "Content", action = "Details", title = UrlParameter.Optional }
);
}
加:
如果您希望您的主页自动重定向到其他航线,如 “http://www.yoursite.com/” 到“ http://www.yoursite.com/bar“,只是使用方法RedirectToRoute():
public class ContentController : Controller
{
public ActionResult Index()
{
return RedirectToRoute("foo");
}
}
向我们展示您的其他路线,我有一个类似于上面的问题(以及您在XSaint32的答案中的注释),我的默认路由导致了一个404,除非我指定了控制器/操作,并且这是由于命名路由不正确eslewhere在我的路线 – Jimmy 2010-11-03 14:42:47