Почему ASP.NET MVC3 Areas и Razor Views вызывают эту ошибку? - PullRequest
4 голосов
/ 22 августа 2010

Представление в '~ / Areas / SomeArea / Views / List / Index.cshtml' должно происходить из ViewPage, ViewPage, ViewUserControl или ViewUserControl.

Структура проекта в значительной степени задана по умолчанию. Есть одна область под названием SomeArea. У него есть один контроллер под названием List. Он ничего не делает, кроме:

public ActionResult Index()
{
   return View("~/Areas/SomeArea/Views/List/Index.cshtml");
}

Вид выглядит так:

@inherits System.Web.Mvc.WebViewPage<dynamic>

@{
    View.Title = "Index";
    LayoutPage = "~/Views/Shared/_Layout.cshtml";
}

<h2>Index</h2>

Я попытался очистить весь файл по частям, но ничего не помогло. Если я создаю контроллер и смотрю за пределы области, он работает просто отлично. Возможно ли, что механизм просмотра бритвы по умолчанию не поддерживает области в это время?

Редактировать: регионы зарегистрированы.

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Random", action = "Index", id = UrlParameter.Optional } // Parameter defaults
    );
}

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    RegisterGlobalFilters(GlobalFilters.Filters);
    RegisterRoutes(RouteTable.Routes);
}

public override void RegisterArea(AreaRegistrationContext context)
{
    context.MapRoute(
        "SomeArea_default",
        "SomeArea/{controller}/{action}/{id}",
        new { controller = "List", action = "Index", id = UrlParameter.Optional }
    );
}

Ответы [ 2 ]

2 голосов
/ 24 августа 2010

Ответ с форумов ASP.NET:

http://forums.asp.net/t/1593209.aspx

Это решило проблему.Спасибо ответчику!

0 голосов
/ 22 августа 2010

Получение сообщения об ошибке «Представление в« ~ / Views / Page / home.aspx »должно происходить из ViewPage, ViewPage , ViewUserControl или ViewUserControl » Подобный вопрос может помочьвы.Кроме того, вы зарегистрировали свои области в global.asax?

...