Вы можете создать пользовательский RouteHandler
, чтобы изменить значения для {action}
и {controller}
. Сначала создайте свой RouteHandler следующим образом:
using System.Web.Mvc;
using System.Web.Routing;
public class MyRouteHandler : IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
var routeData = requestContext.RouteData;
var controller = routeData.Values["controller"].ToString();
routeData.Values["controller"] = controller.Replace("-", "_");
var action = routeData.Values["action"].ToString();
routeData.Values["action"] = action.Replace("-", "_");
var handler = new MvcHandler(requestContext);
return handler;
}
}
Затем измените маршрут по умолчанию следующим образом:
routes.Add("Default",
new Route("{controller}/{action}/{id}",
new RouteValueDictionary(
new { controller = "Home", action = "Index", id = UrlParameter.Optional }),
new MyRouteHandler()
)
);
);
Когда запрос удовлетворен этим маршрутом, RouteHandler изменит черточки на подчеркивания.