У меня есть маршрут в моем проекте MVC3, который прекрасно работает локально при запуске через отладчик и через IIS7. Однако наши серверы - IIS6, и когда я перемещаю свое приложение, я получаю сообщение об ошибке «Страница не найдена». Я думаю, это связано с десятичной дробью в маршруте.
Итак, я попытался реализовать RouteHandler, который, кажется, вызывается, но не работает правильно, потому что значение не перезаписывается в маршруте?
В любом случае, вот мой маршрут:
var route = context.MapRoute(
"Management_version",
"Management/Version/{versionNumber}/{action}",
new { area = "Management", controller = "Version", action = "View" },
new[] { "FRSDashboard.Web.Areas.Management.Controllers" }
);
route.RouteHandler = new HyphenatedRouteHandler();
и мой обработчик маршрута:
public class HyphenatedRouteHandler : MvcRouteHandler
{
protected override IHttpHandler GetHttpHandler(RequestContext requestContext)
{
var versionNumberContext = requestContext.RouteData.Values["versionNumber"];
requestContext.RouteData.DataTokens["versionNumber"] = versionNumberContext.ToString().Replace(".", "-");
return base.GetHttpHandler(requestContext);
}
}
По сути, я пытаюсь заменить десятичную точку дефисом, чтобы обойти эту проблему. Любые предложения будут очень оценены.