Asp.net: WebForm에서 Mvc를 구축하는 방법

6506 단어
참조 추가:
  • System.Web.Routing
  • System.Web.Abstractions
  • System.Web.Mvc


  • 폴더를 추가하려면 다음과 같이 하십시오.
    Controllers, Views,  Views/Shared
    Web. 구성config: 설정 항목을 추가하는 것이지 직접 교체하는 것이 아닙니다!
    < ?xml version="1.0"?>
    <configuration>
      <system.web>
        <compilation debug="false">
          <assemblies>
            <add assembly="System.Core, Version=3.5.0.0, Culture=neutral,
                           PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Web.Extensions,
                           Version=3.5.0.0, Culture=neutral,
                           PublicKeyToken=31BF3856AD364E35"/>
            <add assembly="System.Web.Abstractions,
                           Version=3.5.0.0, Culture=neutral,
                           PublicKeyToken=31BF3856AD364E35"/>
            <add assembly="System.Web.Routing,
                           Version=3.5.0.0, Culture=neutral,
                           PublicKeyToken=31BF3856AD364E35"/>
          </assemblies>
        </compilation> 
        <pages>
          <namespaces>
            <add namespace="System.Web.Mvc"/>
            <add namespace="System.Web.Mvc.Ajax"/>
            <add namespace="System.Web.Mvc.Html" />
            <add namespace="System.Web.Routing"/>
            <add namespace="System.Linq"/>
            <add namespace="System.Collections.Generic"/>
          </namespaces>
        </pages>
        <httpModules>
          <add name="UrlRoutingModule"
               type="System.Web.Routing.UrlRoutingModule,
                     System.Web.Routing, Version=3.5.0.0,
                     Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        </httpModules>
      </system.web>
    </configuration>

    루트 설정을 추가하고 Global을 추가합니다.asax는 루트 디렉터리에 있습니다.
    중요 문장("{resource}.aspx/{*pathInfo}");aspx의 요청을 필터합니다.
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.Web.Routing;
    
    namespace MixingBothWorldsExample
    {
        public class Global : System.Web.HttpApplication
        {
            public static void RegisterRoutes(RouteCollection routes)
            {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
                routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
                routes.MapRoute(
                   "Default",
    // Route name
                   "{controller}/{action}/{id}",
    // URL with parameters
                   new { controller = "Home", action = "Index", id = "" }
    // Parameter defaults
                    );
            }
            protected void Application_Start()
            {
                RegisterRoutes(RouteTable.Routes);
            }
        }
    }

    컴파일된 View 구성을 추가하려면:
    텍스트 편집기에서 항목을 엽니다.csproj
    에 다음을 추가합니다.
    <PropertyGroup>
        ...
        <MvcBuildViews>true</MvcBuildViews>
    
    </PropertyGroup>

    Target에 내용 추가
    <Target Name="AfterBuild" 
            Condition="'$(MvcBuildViews)'=='true'">
       
       <AspNetCompiler VirtualPath="temp"
                       PhysicalPath="$(ProjectDir)..$(ProjectName)"/>
    
    </Target>

     
    MVC와 WebForms는 모두 이러한 공통된 기본 기술을 바탕으로 이루어집니다.
  • HttpContext
  • Session
  • Server
  • Request
  • Response
  • Cookies
  • 좋은 웹페이지 즐겨찾기