Не удается получить доступ к моей переносимой области в MVCContrib MVC2 - PullRequest
0 голосов
/ 22 июля 2010

Мне нужна помощь. Я не могу получить доступ к моей портативной области из моего основного проекта. Я строю все и получаю ошибку 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);
        }
    }

1 Ответ

2 голосов
/ 10 сентября 2010

Не забудьте создать папку с именем «Области» в приложении хостинга. Это решило мою проблему.

...