2009-04-30 8 views
7

내 앱은 주로 MVC 섹션을 추가하는 ASP.NET 앱입니다.MVC 섹션이있는 ASP.NET 프로젝트에서 Default.aspx가 실행되지 않음

My Default.aspx (codebehind 없음) 페이지에는 Start.aspx 페이지에 대한 간단한 Response.Redirect가 있지만 어떤 이유로 MVC가 인계 받아 StartPage.aspx 페이지에 연결되지 않습니다. 대신 global.asax.cs 페이지 (앨범)에 등록 된 등록 된 경로 인 첫 번째이자 유일한 MVC 섹션으로 라우트됩니다.

내 요청을 IIS 7.0의 기본 문서 ...이 경우 Default.aspx가되도록 루트 "/"에 두는 방법이 있습니까?

이 내 RegisterRoutes에있는 것입니다 :

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
routes.MapRoute("Albums","{controller}/{action}/{id}", 
    new { controller = "Albums", action = "Index", id = "" }); 
+0

MVC를 깨고 싶습니까? -View-Controller) 규칙은 무엇입니까? 모든보기는보기 폴더 아래에 있어야한다고 생각합니다. –

+1

고전적인 asp.net 앱입니다. 나는 지금 그것을 유산 앱이라고 부를 수 있다고 생각한다 ;-) 모든 것이 동일하게 유지된다. MVC를 추가하기 시작했고 기본 페이지는 그 중 하나가 아닙니다. – Mouffette

답변

7

당신이 두 번째 경로에서 기본 컨트롤러를 제거하면, 그것은 더 이상 "/"에 대해 일치하지 않습니다 및 라우팅에 대한 요청을 무시합니다 "/" 평소 ASP.Net의 파이프 라인을 떠나는 것은 당신의 경로를 변경, 그래서

을 처리하는 : 당신의 문제를 해결해야

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
routes.MapRoute("Albums","{controller}/{action}/{id}", 
    new { action = "Index", id = "" }); 

!

+0

당신의 제안은 효과가 있었지만 Alconja가 언급 한 default.aspx 페이지를 무시하는 것이 더 나은지 궁금합니다. 앞으로 더 많은 MVC 라우트를 만들면서 기본 컨트롤러를 지정할 수 없거나 {controller}를 지정하는 것이 오해 한 것입니까? 나는 그것이 "앨범"에 특정한 것이라고 생각했지만 확실하지 않습니다. 감사. – Mouffette

+0

Alconja의 솔루션이 "/"경우 실제로 작동하는지 확신 할 수 없습니다. 도착 URL은 "/Default.aspx"가 아니라 "/"입니다. 기본 문서가 적용되는시기에 따라 다릅니다. 기본 컨트롤러 값을 지정하는 유일한 이유는 "/"에 대한 요청이 해당 컨트롤러로 라우팅되기 때문입니다. 그러나 Default.aspx 페이지에서 "/"에 대한 요청을 처리하도록하려면 기본 컨트롤러가 없어야합니다 –

0

이 같은 Default.aspx를 무시하는 MVC 말할 수 :

routes.IgnoreRoute("Default.aspx"); 
1

Default.aspx 페이지가 IIS에 의해 제공되는이 기본 문서이기 때문이다. MVC는 요청이 default.aspx (예 : "http://foo.com/default.aspx")인지 확인한 경우 default.aspx 페이지에서 요청을 처리하도록합니다. 그것은이 시나리오 ("http://foo.com")에서 그래도 당신이 무엇을 달성하기 위해 기본 경로 전에 이것을 추가 할 수 있는지 이해하지 않습니다

// ignore "/"  
routes.IgnoreRoute(""); 

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