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里边的东西全部拷贝过来

  • 相关阅读:
    Oracle如何定义两个数组变量
    Oracle 数组定义
    Oracle的Number对应C#数据类型
    Oracle删除临时表
    我的第一个Flutter 项目(电商)
    Dart Mac 安装环境(无敌)
    React Native 问题(运行)
    TS的一些用法和普通的对比(Vue)
    vue2.0和vue3.0的响应式原理
    简易orm 主要是为了旧平台查询方便
  • 原文地址:https://www.cnblogs.com/grj001/p/12223869.html
Copyright © 2011-2022 走看看