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

时间: 2024-12-30 16:22:28

WebForm与MVC混用的相关文章

WebForm和MVC的一些知识(转)

转自:http://www.cnblogs.com/liuhf939/p/3417203.html 比较WebForm和Mvc的请求处理方式 首先简单了解一下Asp.Net中怎么对页面进行请求处理的: 在管道的第7-8个事件之间,有一个MapHttpHandler类型,在这个类型的Execute方法中中会通过url去创建一个用于后续处理请求的HttpHandler对象. 判断HttpContext有没有去指向一个具体的HttpHandler处理程序,如果已经指向了一个HttpHandler,那么

Jquery 上传插件 FineUploader 在 webform 和 mvc 中的使用;

  多文件上传组件FineUploader使用心得 FineUploader 结合 一般处理程序 [上传示例] 参考:http://www.cnblogs.com/dudu/archive/2012/11/27/fine_uploader_mvc_ajax.html  asp.net mvc示例 参考 :http://www.cnblogs.com/chenkai/archive/2013/01/04/2844702.html  http://www.cnblogs.com/guero/p/38

webform 转 MVC 飞一般的感觉

前言: 浅谈webform与mvc,让开发变得更加简单,这里主要通过比较webform与mvc的开发方式,以下全属个人看法,不完善的地方可以留言补充. 正文: 废话不多说,直接说工作中经常用到的地方 1.创建页面 webform通过创建.aspx文件来编写前端,.aspx.cs来编写服务端代码,mvc通过创建view来编写前端,Controller里的function来实现服务端(注意:一个控制器里面有多个function,可以控制多个view) 比较:mvc直接贴入前端工程师的代码到view里

MVC架构、WebForm与MVC对比

ylbtech-ASP.NET MVC:WebForm与MVC对比 功能描述:WebForm与MVC对比 A.1,MVC架构 •MVC(Model-View-Controller)用于表示一种软件架构模式.它把软件系统分为三个基本部分: –模型(Model) •引用系统数据,管理系统功能并通知View更改用户操作. –视图(View) •就是用户接口,用于显示数据 –控制器(Controller) •将用户操作映射到Model,并操作视图 A.2,3-Tier Architecture(三层架构

解析ASP.NET WebForm和Mvc开发的区别

解析ASP.NET WebForm和Mvc开发的区别 2013-12-29 01:59 30052人阅读 评论(9) 收藏 举报  分类: ASP.NET(14)  版权声明:本文为博主原创文章,未经博主允许不得转载. 因为以前主要是做WebFrom开发,对MVC开发并没有太深入的了解.自从来到创新工场的新团队后,用的技术都是自己以前没有接触过的,比如:MVC 和EF还有就是WCF,压力一直很大.在很多问题都是不清楚的情况下,问周围的人,别人也只是给自己讲一个大概.而且前两天因为问了一个比较细的

WebForm、MVC图片加载失败处理

还是那个该死的WebFrom项目,部分功能替换为MVC后感觉好多了,但是WebForm.MVC都有图片加载失败时显示提示图片的需求,并且统一在js中处理.问题来了,js中图片路径怎么处理呢?现场有可能部署为网站,也有可能为应用,再加上对路径的不了解,决定弄个IHttpHandler一劳永逸解决路径问题. 搞定了IHttpHandler,发现图片还是显示不出来,日志中多了System.UnauthorizedAccessException: Access to the path 'xxxx' is

ASP.NET中HttpApplication中ProcessRequest方法中执行的事件顺序;ASP.NET WebForm和MVC整体请求流程图

ASP.NET中HttpApplication中ProcessRequest方法中执行的事件顺序 1.BeginRequest  开始处理请求 2.AuthenticateRequest 授权验证请求,获取用户授权信息 3.PostAuthenticateRequest 获取成功 4.AunthorizeRequest 授权,一般来检查用户是否获得权限 5.PostAuthorizeRequest 获得授权 6.ResolveRequestCache 获取页面缓存结果(如果没有则执行) 7.Po

[转]asp.net webform 与mvc 共享session

公司内部系统最早是用.net webform模式开发的,现新项目用.net mvc 开发,现存在的问题就是如何保持原有.net webform的登录状态不变,而在mvc中能够验证用户的登录状态,也就是将.net webform 中session中保存的登录状态共享给mvc. 在cnblogs中搜索相关资料,基本解决方法都是将session状态保存在数据库中,然后原有程序和新程序都获取数据库中的session状态 ,从而实现用户登录状态信息共享. 具体实现步骤如下: 1.创建session 保存的

FusionCharts simple demo for (html+js、APS.NET Webform、MVC)

做GIS或其他内部数据统计项目的应该对FusionCharts也不会太陌生,简单易用已无需多说什么了,只是有时候框架不同,实现起来也稍有差异 引用dll调用FusionCharts类的静态方法RenderChartHTML 返回html绑定在数据控件上更为符合webform: 使用JS代码new FusionCharts对象,调用对象的setDataXML或者setDataURL方法更为符合MVC 1.HTML+JS <!--html--> <html xmlns="http: