Как правильно маршрутизировать контроллеры MVC внутри разных папок PARENT? - PullRequest
2 голосов
/ 09 января 2012

Я не могу найти решение этой проблемы.
Мне нужно присоединиться к ДВУМЯ проектам MVC3 в ОДНОМ проекте.И для этого я должен поместить их в отдельные папки.Чтобы понять, что я имею в виду, давайте посмотрим на эти изображения:

Первый проект:

enter image description here

После помещения в папку:

enter image description here

Теперь, когда я запускаю проект, я получил эту ошибку:

Server Error in '/' Application.

The view 'Index' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/Home/Index.aspx
~/Views/Home/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx
~/Views/Home/Index.cshtml
~/Views/Home/Index.vbhtml
~/Views/Shared/Index.cshtml
~/Views/Shared/Index.vbhtml

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.InvalidOperationException: The view 'Index' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/Home/Index.aspx
~/Views/Home/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx
~/Views/Home/Index.cshtml
~/Views/Home/Index.vbhtml
~/Views/Shared/Index.cshtml
~/Views/Shared/Index.vbhtml  

Внутри Global.asax:

namespace MvcApplication1
{
    // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
    // visit http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : System.Web.HttpApplication
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
        }

        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
            );

        }

        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);
        }
    }
}  

Вопрос:

  1. Какой должна быть конфигурация моего global.asax?(Я подозреваю, что проблема начинается здесь)
  2. Если номер один может быть решен, то как мне наметить маршрут второго проекта MVC3?

Спасибо большое !!!!

Ответы [ 3 ]

4 голосов
/ 09 января 2012

Попробуйте использовать «Области» из Asp.net MVC-3

, чтобы вы могли наилучшим образом контролировать как URL, так и вывод.

1 голос
/ 09 января 2012

Области - это очень хорошая функция в MVC3, вы просто сможете направить ее следующим образом.

"MVCApplication1/{controller}/{action}/{id}"

"MVCApplication2/{controller}/{action}/{id}"

см. Здесь

0 голосов
/ 19 мая 2016

В Global.asax проверьте, если вы уже зарегистрировали области.

protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...