zoukankan      html  css  js  c++  java
  • WebForm与MVC混用

    WebForm与MVC混用

    步骤一:添加引用 -> 程序集 -> 扩展 ->

    • System.Web.Mvc ;
    • System.Web.Razor;
    • System.Web.WebPages;
    • System.Web.Abstractions;

    步骤二:mvc默认目录结构 

      新建一个空的mvc项目, 将Controllers和Views文件夹全部拷贝过来(文件结构和web.config这个很重要)

    步骤三:修改配置文件web.config(不是Views文件夹下的)

      1.在compilation节点下加入以下几个assemblies :

    <compilation debug="true" targetFramework="xx">  // 框架版本不用动
          <assemblies>  
            <add assembly="System.Web.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>  
            <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>  
            <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>  
            <add assembly="System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>  
          </assemblies>  
    </compilation>  

      2. 还有一个需要注意的: 在configuration节点下加入   <modules runAllManagedModulesForAllRequests="true"/>  

         -- 不过我把这个去掉也调试成功了,  这个貌似只是设置每个请求都会执行Global.cs里边的BeginRequest事件而已

    <configuration>
      <system.webServer>
            <modules runAllManagedModulesForAllRequests="true"/>
      </system.webServer>

    步骤四:路由设置

      1. 可以按照mvc惯例 在App_Start文件夹中创建路由配置静态方法;RouteConfig.cs文件代码如下

    using System;
    using System.Collections.Generic;
    using System.Linq;  
    using System.Web;
    using System.Web.Mvc;   // 引入命名空间 才能注册mvc的路由
    using System.Web.Routing;  // 引入命名空间
    
    namespace webform
    {
        public class RouteConfig
        {
            public static void RegisterRoutes(RouteCollection routes)
            {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
                routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");  // web form访问方式
                routes.MapRoute(
                    name: "Default",
                    url: "{controller}/{action}/{id}",
                    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
                );
    
            }
        }
    }

      2. 然后在Global.cs中注册

        public class Global : System.Web.HttpApplication
        {
    
            protected void Application_Start(object sender, EventArgs e)
            {
                RouteConfig.RegisterRoutes(RouteTable.Routes);  

    接着就可以写你的controller和View

    按照以上步骤调试成功 ╮(╯▽╰)╭ 

     示例代码:Asp.netMigrateToMVC.zip

    ps: 个人对配置文件里的各个节点作用不是很理解, 就新建了一个空mvc项目然后把Views里边的东西全部拷贝过来

  • 相关阅读:
    PAT 1006 Sign In and Sign Out
    PAT 1004. Counting Leaves
    JavaEE开发环境安装
    NoSql数据库探讨
    maven的配置
    VMWARE 下使用 32位 Ubuntu Linux ,不能给它分配超过3.5G 内存?
    XCODE 4.3 WITH NO GCC?
    在苹果虚拟机上跑 ROR —— Ruby on Rails On Vmware OSX 10.7.3
    推荐一首让人疯狂的好歌《Pumped Up Kicks》。好吧,顺便测下博客园可以写点无关技术的帖子吗?
    RUBY元编程学习之”编写你的第一种领域专属语言“
  • 原文地址:https://www.cnblogs.com/grj001/p/12223868.html
Copyright © 2011-2022 走看看