Web サイトに 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())
//);
どうすればこれを修正できますか?