Это первый раз, когда я развернул приложение 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();
}
}