2014-09-29 5 views
0

새로운 MVC 5 페이지를 추가하려는 기존 WebForms 웹 사이트가 있습니다.404로 라우팅되는 MVC5

내가 VS Express를 실행하고 2013 이 페이지에서

내가 따랐다 지침

/IISExpress :

http://www.codeproject.com/Articles/38778/ASP-NET-WebForms-and-ASP-NET-MVC-in-Harmony https://www.simple-talk.com/dotnet/asp.net/mixing-web-forms-and-asp.net-mvc/ http://www.asp.net/mvc/tutorials/mvc-5/introduction/adding-a-view

나는 내 프로젝트의 "NuGet 패키지 관리"설치 달렸다 ASP.NET MVC 및 모든 종속성.

System.Web.Routing, System.Web.Mvc 및 System.Web.Razor에 대한 참조를 추가하여 기본보기 및 컨트롤러를 만들었습니다.

모든 것이 빌드되어 실행됩니다.

내가 중단 점을 설정하고 다음과 같이 응용 프로그램이 시작될 때 내 루트는 생성되는 것을 볼 수 있습니다

: 여기에 설명 된대로

private void RegisterRoutes(RouteCollection routes) 
    { 
     routes.MapHttpRoute(
      "AdminPages", 
      "Admin/{controller}", 
      new { controller = "Dashboard" } 
      ); 
    } 

내가 라우팅 속성을 추가하는 시도 :

http://www.dotnet-tricks.com/Tutorial/mvc/4PK4010514-Understanding-Attribute-Routing-in-ASP.NET-MVC.html

컨트롤러 :

namespace ConnectBusiness.Controllers 
{ 
    [RoutePrefix("Admin")] 
    [Route("{action=index}")] 
    public class DashboardController : Controller 
    { 

     // Dashboard/Index 
     public ActionResult Index() 
     { 
      return View(); 
      //return View("~/MVC5/Views/Administration/Dashboard.cshtml"); 
     } 
    } 
} 

Web.config 다음 처리기 entires 있습니다

http: //localhost:57330/Admin/Dashboard --> http: //localhost:57330/Admin/Dashboard/default.aspx --> 404

:

<remove name="ExtensionlessUrlHandler-Integrated-4.0" /><remove name="OPTIONSVerbHandler" /><remove name="TRACEVerbHandler" /> 
    <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 

을하지만 내가 올바른 URL이, 난 항상 404에 어떤 결과 Default.aspx를 위해 리디렉션되는 생각을 탐색하려고 할 때

404 리디렉션의 원인과 어떻게 컨트롤러를 성공적으로 탐색 할 수 있습니까?

답변

0

이것은 Ur lRewritingNet (http://www.urlrewriting.net)이 구성에 설치되어 있습니다.

학습 : 다른 URL rewriters를 제거하고 MVC가 URL 재 작성을 처리하게하십시오.

0
  1. Views/Dashboard/index.cshtml에 색인보기가 있습니까? 색인 작업을 실행하면이 파일이 검색됩니다.

  2. 속성 라우팅을 활성화 했습니까? 컨벤션 기반 라우팅 전에 먼저 활성화해야 속성 라우팅과 먼저 일치해야합니다. 당신이 URL을 원하는 경우

    public static void RegisterRoutes(RouteCollection routes) 
    { 
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
    
        //enabling attribute routing 
        routes.MapMvcAttributeRoutes(); 
    
        //convention-based routing 
        /routes.MapRoute(
        name: "Default", 
        url: "{controller}/{action}/{id}", 
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }); 
    } 
    

는 수 할 로컬 호스트 : 나는 URL이 있을 거라고 생각

[RoutePrefix("Admin")] 
[Route("{action=index}")] //default action 
public class DashboardController : Controller 
{ 

    // route: /Admin/Dashboard 
    [Route("Dashboard")] 
    public ActionResult Index() 
    { 
     return View(); 
    } 
} 

당신이 설정 한 방법 : 57330/관리/대시 보드이 시도 localhost : 57330/Admin 또는 localhost : 57330/Admin/Index