2009-07-14 2 views
25

응용 프로그램을 빌드하고 실행하면 브라우저에 디렉토리 목록이 표시됩니다 (도 하위 폴더에 발생 함). 색인을 클릭해야합니다. aspx. 그것은 나를 미치게 만들고있어.ASP.NET (Visual Studio) 서버 구성의 기본 페이지 설정

비주얼 스튜디오 2008 ASP.NET 개발 서버 프로젝트의 속성 페이지에 9.0.0.0

+1

.. (이 후 질문)이 같은 질문도 나타납니다 비주얼 스튜디오 2013 "YourSolutionName을"프로젝트 이름으로 변경하는 것입니다 사용하여 HTTP하고 : //stackoverflow.com/questions/3398565/change-default-default-aspx-to-index-aspx-on-visual-studio-2010) –

+0

@Philippe Leybaert의 대답을 참조하십시오. "프로젝트의 속성 페이지로 이동하여 "웹"탭 – Lijo

답변

20

기본 제공 웹 서버는 Default.aspx를 기본 페이지로 사용하도록 고정 배선되어 있습니다.

Global.asax에 대한 디렉토리 목록 문제를 해결하려면 프로젝트에 최소한 Default.aspx 파일이 있어야합니다.

:

빈 파일을 추가하면 모든 요청을 한 위치에서 처리 할 수 ​​있습니다.

public class Global : System.Web.HttpApplication 
{ 
    protected void Application_BeginRequest(object sender, EventArgs e) 
    { 
     if (Request.Url.AbsolutePath.EndsWith("/")) 
     { 
      Server.Transfer(Request.Url.AbsolutePath + "index.aspx"); 
     } 
    } 
} 
10

이동 ("시작 작업"섹션) "웹"탭 위에을 선택, 페이지 이름을 입력 "특정 페이지"상자에. 귀하의 경우 index.aspx

+3

예, 시작 페이지에서 작동하지만 하위 폴더에서 아무것도 찾으면 폴더 목록이 다시 나타납니다. –

+0

Visual Studio의 내부 웹 서버 (Cassini)에서 기본 페이지를 지정할 수 없습니다. –

+0

내 그룹의 다른 여러 개발자에게 예상대로 작동합니다. –

36

Visual Studio에서 웹 응용 프로그램을 실행할 때마다 기본 페이지로 사용할 웹 페이지를 마우스 오른쪽 단추로 클릭하고 "시작 페이지로 설정"을 선택하면 선택한 페이지가 열립니다 .

+6

을 실행하면 시작 페이지에서 작동하지만 하위 폴더에서 아무 것도 찾아 보았을 때 폴더 목록. –

0

VS Webdev 서버가 아닌 IIS를 실행하는 경우 Index.aspx가 기본 파일 중 하나이고 해당 디렉터리 찾아보기가 해제되어 있는지 확인하십시오.

+0

아니, VS Webdev 서버를 실행 중입니다. –

8

유사 시작. 여기

다음은 당신을 정의 할 수 있습니다, 기본 홈 컨트롤러 색인 방법으로

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

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 
      namespaces: new[] { "YourSolutionName.Controllers" } 
     ); 
    } 
} 

이 응용 프로그램을 시작할 때 실행되는 ... 특정 페이지로 리디렉션하는 경로 예입니다.

참고 : 나는 ([여기]를, 다른 대답,

1
public class Global : System.Web.HttpApplication 
{ 
    protected void Application_BeginRequest(object sender, EventArgs e) 
    { 
     if (Request.Url.AbsolutePath.EndsWith("/")) 
     { 
      Server.Transfer("~/index.aspx"); 
     } 
    } 
} 
+1

이 답변은 적절하지 않습니다. 사용자가 "site.com/account/"로 이동하면 사용자는 "/account/index.aspx"대신 "/index.aspx"로 리디렉션됩니다. –

+0

"모방은 아첨의 진심 어린 형태입니다." - Charles Caleb Colton –

0

게시 된 솔루션이 하나의 방법은 특정 페이지에 게재 :이 달성하기 위해 Gloabal.asax.cs에 folowing 코드를 사용하고 위의 답변 zproxy 할

public class Global : System.Web.HttpApplication 
{ 
    protected void Application_BeginRequest(object sender, EventArgs e) 
    { 
     this.Response.Write("[email protected] " + this.Request.Path + "?" + this.Request.QueryString); 
     this.Response.StatusCode = 200; 
     this.Response.ContentType = "text/plain"; 

     this.Response.End(); 
    } 
}