我爲我的網站使用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 /產品/店建設者/ boronz
產品是我的地區名稱。當然,當我瀏覽這個地址:
本地主機:1559 /產品/ store_builder/boronz
它顯示頁面。
編輯:
我用這個爲我區的路線,但它不能檢測到這是一個面積:
//context.Routes.Add(
// new Route("products/{controller}/{action}",
// new RouteValueDictionary(
// new { controller = "", action = "Index" }),
// new MyProject.MvcApplication.HyphenatedRouteHandler())
//);
我怎樣才能解決這個問題?
是的,這是簡單的選項。但商店建設者是我的產品之一。網站建設者可能是下一個。所以我需要爲此創建另一條路線。但我可以爲它們全部使用一種模式。 –