Я хотел попробовать и использовать область (просто попробовать). Я добавил область foo
в свой проект: щелкните правой кнопкой мыши по проекту, затем добавьте область. Эта папка содержит вспомогательные папки, в которых я могу добавить контроллеры, просмотр, модели и т. Д. Он также имеет файл cs fooAreaRegistration.cs
, где выполняется маршрутизация для области.MVC4: создание области для начинающих
using System.Web.Mvc;
namespace AreasExample.Areas.foo
{
public class fooAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "foo";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"foo_default",
"foo/{controller}/{action}/{id}",
new {controller = "Foo", action = "Index", id = UrlParameter.Optional }
);
}
}
}
Global.asax
уже имеет функцию регистрации площадь в приложении начать
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
}
}
}
я тогда создал контроллер Foo
, который уже имеет действие по умолчанию Index
, после того, что я добавил представление к действию. Основываясь на context.MapRoute
в fooAreaRegistration.cs
, если я запустил программу и прохожу по этой ссылке http://localhost:54421/foo/Foo
не должен ли он работать? Он показывает некоторую ошибку, когда я иду в свою область foo
и контроллер Foo
. Ошибка говорит
Server Error in '/' Application.
[A]System.Web.WebPages.Razor.Configuration.HostSection cannot be cast to
[B]System.Web.WebPages.Razor.Configuration.HostSection. Type A originates from 'System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' in the context 'Default' at location 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.WebPages.Razor\v4.0_1.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll'. Type B originates from 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' in the context 'Default' at location 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll'.
Есть ли что-то я не хватает? Мне нужно что-то добавить?
Редактировать: Я не уверен, должен ли я удалить этот пост, поскольку нашел ответ, который указан как ответ ниже. Но тогда это может быть полезно для тех, кто следит за одной книгой (ASP.NET MVC4 в действии).
Предложения?