asp.net mvc 3 страница не найдена - PullRequest
0 голосов
/ 22 ноября 2011

Это первый раз, когда я развернул приложение asp.net mvc на IIS 7.X.

Если я разверну приложение на корневом пути, оно будет работать нормально, но если я разверну на не-корневом пути, как упомянуто ниже, тогда будет работать только моя домашняя страница, ни одна из других ссылок не будет работать.

http://rootpath/MyApplication/

Теперь допустим, у меня есть контроллер - MyController и Action - MyAction. При его выполнении я ожидаю http://rootpath/MyApplication/MyController/MyAction, но он указывает только на корневой путь. (токовый выход - http://rootpath/MyController/MyAction)

Я не изменил маршрутизацию по умолчанию. Я опубликовал сайт с опцией «Файловая система».

/////// Code of Global.asax ///////
 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}");

            bool isBypassOn = false;

            if (!isBypassOn)
            {
                //Following should be default application route path
                routes.MapRoute(
                    "Default", // Route name
                    "{controller}/{action}/{id}", // URL with parameters
                    new { controller = "Login", action = "Index", id = UrlParameter.Optional } // Parameter defaults
                );
            }
            else
            {
                routes.MapRoute(
                   "Default", // Route name
                   "{controller}/{action}/{id}", // URL with parameters
                   new { controller = "ByPassLogin", action = "Index", id = UrlParameter.Optional } // Parameter defaults
               );

            }
        }

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

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

// Некоторый код контроллера

открытый класс MemberHomeController: BaseController { // // GET: / MemberHome /

    public ActionResult Index()
    {
        //return Content("Successful Login...");
        return View();
    }

    public override void Custom_OnLoad()
    {
        SelectedMenu = Menus.Home;
    }

    public ActionResult ScheduleIndex()
    {
        //return Content("Successful Login...");
        return View();
    }
}

1 Ответ

0 голосов
/ 23 ноября 2011

Попробуйте

routes.MapRoute( "Default",
             "MyApplication/{controller}/{action}/{id}",
             new { controller = "Home", action = "Index", id = "" } );

вместо значения по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...