我正在为我的网站使用 asp.net MVC 3,我想用我的地址中的破折号替换下划线。我能做到 。但是当我想在一个区域内更换它们时,我做不到。
谁能帮我 ?
这是我的代码:
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);
}
}
这是我的区域路线:
context.MapRoute(
"products_default",
"products/{controller}/{action}",
new { controller = "All", action = "Index" }
);
我想浏览这个地址:
本地主机:1559/products/store-builder/boronz
产品是我的地区名称。当然,当我浏览这个地址时:
本地主机:1559/products/store_builder/boronz
它显示页面。
编辑 :
我将它用于我的区域路线,但它无法检测到这是一个区域:
//context.Routes.Add(
// new Route("products/{controller}/{action}",
// new RouteValueDictionary(
// new { controller = "", action = "Index" }),
// new MyProject.MvcApplication.HyphenatedRouteHandler())
//);
我怎样才能解决这个问题 ?