Я новичок в приложении mvc2 (asp.net 3.5 + sp1 + mvc2).Я создал обработчик «HyphenatedRouteHandler» (путем наследования MvcRouteHandler) для изменения написания области, контроллера и действия.
Код:
public class HyphenatedRouteHandler : MvcRouteHandler
{
protected override IHttpHandler GetHttpHandler(RequestContext requestContext)
{
if (requestContext.RouteData.Values["area"]!=null)
requestContext.RouteData.Values["area"] = requestContext.RouteData.Values["area"].ToString().Replace("-", "_");
requestContext.RouteData.Values["controller"] = requestContext.RouteData.Values["controller"].ToString().Replace("-", "_");
requestContext.RouteData.Values["action"] = requestContext.RouteData.Values["action"].ToString().Replace("-", "_");
return base.GetHttpHandler(requestContext);
}
}
Моя структура директив выглядит следующим образом:
Области
--Entertainment_Karmanuk
- Контроллеры
---- Drama_NatakController.cs
--Модели
--Просмотры
---- Drama_Natak
------ Schedule_Timetable.aspx
Это прекрасно работает, если я не использую Area, но когда я использую Area, он ищет представление во внешних основных представлениях вместо представлений в представлении .. поэтому выдает ошибку:
Представление 'Schedule_Timetableили его хозяин не был найден.Были найдены следующие местоположения:
~ / Views / Drama_Natak / Schedule_Timetable.aspx
~ / Views / Drama_Natak / Schedule_Timetable.ascx
~ / Views / Shared / Schedule_Timetable.aspx
~ / Views / Shared/Schedule_Timetable.ascx
На самом деле Drama_Natak / Schedule_Timetable.aspx присутствует в области.
Я что-то пропустил?Пожалуйста, помогите.