Мне нужна помощь. Я не могу получить доступ к моей портативной области из моего основного проекта. Я строю все и получаю ошибку 404 при попытке доступа к этой переносимой области (localhost: 123 / IW / Home), но все мои обычные области работают нормально (например: localhost: 123 / Portal / Home)
Вот что я сделал, чтобы установить мою переносную зону
-Я скачал MVCContrib
-Я добавил ссылку на MVCContrib.dll в моем основном проекте (WAB)
- Я создал новый проект Class Librairy в том же решении, что и WAB.
-Этот новый Class Librairy называется IWPortableArea, и я добавил необходимые ссылки на сборки (MVCContrib, System.mvc, ...)
-Я создал IWRegistration:
namespace IWPortableArea
{
public class IWRegistration : PortableAreaRegistration
{
public override void RegisterArea(System.Web.Mvc.AreaRegistrationContext context, IApplicationBus bus)
{
context.MapRoute(
"iw",
"iw/{controller}.aspx/{action}",
new { controller = "login", action = "index" });
RegisterAllAreas(GetType());
}
public override string AreaName
{
get { return "iw"; }
}
}
}
-Я создал простой контроллер, который не использует ни один файл представления:
namespace IWPortableArea.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return Content("yo you are in IW Portable Area, congrats");
}
}
}
- Я добавил ссылку в своем основном проекте в переносимую область: IWPortableArea.dll
- Наконец, я изменил Global.asax.cs моего основного приложения:
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}.aspx/{action}/{id}", // URL with parameters
new { controller = "Portal", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
}
}