Asp.net mvc 4 Visual Studio MVC4自动Url路由,用于所有Url';s
大家好,我正在localhost中使用VS13 MVC4,对于我想要的url路由,VS将自动作为www.sitename.com/about-us为所有url工作,但现在它正在获得下划线(41;而不是破折号(-)如何进行更改,并在url中的每个新词之前获得连字符(-) 以下是答案,我也将其添加到我的问题中,供大家看到:Asp.net mvc 4 Visual Studio MVC4自动Url路由,用于所有Url';s,asp.net-mvc-4,controller,routing,Asp.net Mvc 4,Controller,Routing,大家好,我正在localhost中使用VS13 MVC4,对于我想要的url路由,VS将自动作为www.sitename.com/about-us为所有url工作,但现在它正在获得下划线(41;而不是破折号(-)如何进行更改,并在url中的每个新词之前获得连字符(-) 以下是答案,我也将其添加到我的问题中,供大家看到: public class HyphenatedRouteHandler : MvcRouteHandler { protected override IHttpHandl
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())
);
}
}
谢谢大家。路由中的prob将自动转换为a-。另一种方法是自己设置路由在路由中,prob将自动转换为a-。另一种方法是自己设置路由如果你想在asp.net mvc中获得漂亮的url,那么你应该为你的控制器注册新的路由
- 从应用程序目录打开
目录中的App\u Start
RouteConfig.cs
- 在
类的RouteConfig
方法中,注册一条如下的新路由-RegisterRoutes
routes.MapRoute( name: "AboutUs", url: "sitename/about-us", defaults: new { controller = "About_Us", action = "Index" } );
- 从应用程序目录打开
目录中的App\u Start
RouteConfig.cs
- 在
类的RouteConfig
方法中,注册一条如下的新路由-RegisterRoutes
routes.MapRoute( name: "AboutUs", url: "sitename/about-us", defaults: new { controller = "About_Us", action = "Index" } );