大家好我在本地主机上使用VS13 MVC4,对于url路由我希望VS能自动为所有URL工作,如www.sitename.com/about-us但是现在得到下划线(_)没有破折号( - )如何进行更改并在url
中的每个新单词之前获取连字符( - )以下是答案我也将其添加到我的问题中,每个人都可以看到:
public class HyphenatedRouteHandler : MvcRouteHandler
{
protected override IHttpHandler GetHttpHandler(RequestContext requestContext)
{
requestContext.RouteData.Values["controller"] = requestContext.RouteData.Values["controller"].ToString().Replace("-", "_");
requestContext.RouteData.Values["action"] = requestContext.RouteData.Values["action"].ToString().Replace("-", "_");
return base.GetHttpHandler(requestContext);
}
}
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.Add(
new Route("{controller}/{action}/{id}",
new RouteValueDictionary(
new { controller = "Default", action = "Index", id = "" }),
new HyphenatedRouteHandler())
);
}
}
谢谢大家。
答案 0 :(得分:3)
如果你想在asp.net mvc中使用漂亮的网址,那么你应该为你的控制器注册新的路由。
RouteConfig.cs
目录中的应用程序目录open App_Start
。在RegisterRoutes
类的RouteConfig
方法中注册了这样的新路线 -
routes.MapRoute(
name: "AboutUs",
url: "sitename/about-us",
defaults: new { controller = "About_Us", action = "Index" }
);
答案 1 :(得分:1)
_将在路由中自动转换为 - 。另一种方法是自己设置路由