【发布时间】:2012-10-23 09:23:06
【问题描述】:
我正在为我的网站使用 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" }
);
我想浏览这个地址:
localhost:1559/products/store-builder/boronz
product 是我的地区名称。当然,当我浏览这个地址时:
localhost:1559/products/store_builder/boronz
它显示页面。
编辑:
我将它用于我的区域路线,但它无法检测到这是一个区域:
//context.Routes.Add(
// new Route("products/{controller}/{action}",
// new RouteValueDictionary(
// new { controller = "", action = "Index" }),
// new MyProject.MvcApplication.HyphenatedRouteHandler())
//);
我该如何解决这个问题?
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-2 asp.net-mvc-routing