http://www.cnblogs.com/dudu/archive/2011/03/05/asp_net_webform_mvc.html
2015-08-17 12:35
886 查看
转载地址:http://www.cnblogs.com/dudu/archive/2011/03/05/asp_net_webform_mvc.html
问题场景:
在改进博客园博客后台的过程中,有一个页面我们想用ASP.NET MVC来写。但我们不想通过设置<modules runAllManagedModulesForAllRequests="true"/>使用System.Web.Routing来处理请求,因为不能确定这是否会与我们现有的URL重写产生冲突。我们只是想用Razor爽一下。
解决思路:
不改变ASP.NET管线的请求处理流程,请求还是正常到达一个.aspx页面,然后再转手给ASP.NET MVC。也就是把WebForm作为一个中转站。
好处:
在现有项目中,以最小的代价用上ASP.NET MVC。先品尝一下Razor的美味。
解决方法:
用System.Web.Mvc.MvcHandler可以轻松搞定,请看下面Home.aspx的代码:
运行结果:
项目结构:
看,没有Global.asax。
演示代码下载:
CnblogsMvcDemo0305.rar
更新:
不走寻常路,是为了找到正确的路,感谢老赵指出了正确的路:
在Global.asax.cs的Application_Start中使用下面的代码:
标签: ASP.NET MVC
问题场景:
在改进博客园博客后台的过程中,有一个页面我们想用ASP.NET MVC来写。但我们不想通过设置<modules runAllManagedModulesForAllRequests="true"/>使用System.Web.Routing来处理请求,因为不能确定这是否会与我们现有的URL重写产生冲突。我们只是想用Razor爽一下。
解决思路:
不改变ASP.NET管线的请求处理流程,请求还是正常到达一个.aspx页面,然后再转手给ASP.NET MVC。也就是把WebForm作为一个中转站。
好处:
在现有项目中,以最小的代价用上ASP.NET MVC。先品尝一下Razor的美味。
解决方法:
用System.Web.Mvc.MvcHandler可以轻松搞定,请看下面Home.aspx的代码:
<%@ Page Language="C#" AutoEventWireup="true" %> <script runat="server"> protected override void OnInit(EventArgs e) { System.Web.Routing.RequestContext requestContext = new System.Web.Routing.RequestContext(); requestContext.HttpContext = new HttpContextWrapper(Context); requestContext.RouteData = new System.Web.Routing.RouteData(); requestContext.RouteData.Values.Add("controller", "Home"); requestContext.RouteData.Values.Add("action", "Index"); IHttpHandler handler = new System.Web.Mvc.MvcHandler(requestContext); handler.ProcessRequest(Context); } </script>
运行结果:
项目结构:
看,没有Global.asax。
演示代码下载:
CnblogsMvcDemo0305.rar
更新:
不走寻常路,是为了找到正确的路,感谢老赵指出了正确的路:
在Global.asax.cs的Application_Start中使用下面的代码:
RouteTable.Routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); RouteTable.Routes.MapRoute( "Test.aspx", "Test.aspx", new { controller = "Test", action = "Index" } );
标签: ASP.NET MVC
相关文章推荐
- 在android用Get方式发送http请求
- iscsi网络存储LVM逻辑卷和RAID5卷
- 高性能、高并发、高扩展性和可读性的网络服务器架构:StateThreads
- 网络加载时Dialog
- win10无线网卡WIFI出现卡顿网络延迟高该怎么办?
- HTTP Content-type
- HTTP 权威指南 阅读笔记
- UNIX网络编程卷一:第二十六章 线程
- Windows Socket 网络编程——第五章 操作模式
- 你所不知道的TCP/IP传输层
- Volley详解(五)——网络(Network)
- Android Volley完全解析(二),使用Volley加载网络图片
- TCP服务器和客户端交互
- UNIX网络编程卷一:第二十一章 多播
- Android中的几种网络请求方式详解
- HTTPS 背后的加密算法
- UNIX网络编程卷一:第二十章 广播
- RedHat6 系统安装完后的网络配置和YUM镜像源修改
- WebServcies 调用方法异常:System.Web.HttpRequestValidationException: 从客户端中检测到有潜在危险的 Request.Form 值。
- Java9新功能之HTTP2和REPL