一起谈.NET技术,不走寻常路:在WebForm中使用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" }
);

时间: 2024-09-20 08:55:26

一起谈.NET技术,不走寻常路:在WebForm中使用MVC的相关文章

快钱CEO关国光的创业观 不走寻常路

他学的是船舶制造专业,出国后拿的又是工业管理硕士学位,但最终却在华尔街当起了一名特许金融分析师.他曾经担任网易资深副总裁,在帮助网易http://www.aliyun.com/zixun/aggregation/34301.html">成功上市后却急流勇退,进入了当前尚未完全开放的第三方支付市场.这位"不走寻常路"的创业者就是快钱CEO关国光. "创业者需要一种非常专注和绝对的信念,甚至是偏执,这样才能带领团队做一些以前没有人做过的事情."关国光说.

不走寻常路 设计ASP.NET应用程序的七大绝招

asp.net|程序|设计 不走寻常路 设计ASP.NET应用程序的七大绝招 随着微软.NET的流行,ASP.NET越来越为广大开发人员所接受.作为ASP.NET的开发人员,我们不仅需要掌握其基本的原理,更要多多实践,从实践中获取真正的开发本领.在我们的实际开发中,往往基本的原理满足不了开发需求,我们更多的要积累一些开发技巧,本文就向大家介绍一些实用技巧,希望对大家的开发有所裨益. 1. ~ 的用法 一般的情况下,我们是使用./../ 这样的相对路径来确定和规划我们的资源(比如图片.资源文件),

谷歌中国不走寻常路:四年竟有五个“门”

□ 何 苦 "2005底至2007年初,我们一直致力于将中文搜索网页做得最好.我们现在已经实现了'最大的索引.最新的结果.最精确的排序.最公正的搜索.最好的用户界面'." "我们已经做到'最精确.最完整.最大.最新鲜'的中文搜索,我们很自豪." "我们引领了搜索行业,不仅在全球.不仅在美国,而且在中国.我们中文网页搜索做的好,也造成了其它中文搜索引擎也有了更高的标杆,也要试着追赶我们搜索引擎的广大.精深.精确." -- 这些舍我其谁的豪言壮语,出

谷歌中国不走寻常路:四年竟有五个“门” 

谷歌中国不走寻常路:四年竟有五个"门" "2005底至2007年初,我们一直致力于将中文搜索网页做得最好.我们现在已经实现了'最大的索引.最新的结果.最精确的排序.最公正的搜索.最好的用户界面'." "我们已经做到'最精确.最完整.最大.最新鲜'的中文搜索,我们很自豪." "我们引领了搜索行业,不仅在全球.不仅在美国,而且在中国.我们中文网页搜索做的好,也造成了其它中文搜索引擎也有了更高的标杆,也要试着追赶我们搜索引擎的广大.精深.精确

不走寻常路:宏图三胞10年10大经典瞬间

从上个世纪末到现在,国内专业连锁行业的"第一个十年"已经结束,十年就意味着一个时代,是可以做一个阶段性回顾和总结的,在号称连锁之都的南京,就有这样一家独特的企业,十年前,她是一家专营DIY的小店,在南京珠江路一隅悄然开张:十年后,她是国内IT行业的标志性企业,其一举一动都会牵动业界的神经,这就是宏图三胞. 十年来,从偏安一隅到擘划全国,从涓滴之资到业冠同侪,从默默无闻到行业翘楚,宏图三胞的快速崛起正在书写国内商业模式创新的范本,其创始人袁亚非先生在出道之时,便始终称自己是一个不懂IT的

网站推广 不走寻常路

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 说到网站推广,网站优化,想必这里有不少的高手.阔论我就不谈了,在这里我就说说自己运用过的一些"小招".别看是小,作用可不小,正所谓麻雀虽小,五脏惧全.呵呵,扯远了. 在生活中也是如此,一些不寻常的手段,一些小聪明往往能旗开得胜.做网站推广,SEOer们也可以运用这些小招让自己的网站闪烁出璀璨的光芒.我刚学建站时,什么都不懂

不走寻常路:22款“暗黑系”的网页设计分享

自从iOS 7推出后,便掀起了扁平化加色彩明亮的设计风潮.如今,色彩明亮的扁平化设计已填满了我们的生活,大家是否有些审美疲劳了呢?在扁平风潮下,依旧有些特立独行的设计师们坚持走自己的路,在他们的作品中采用的多是较为柔和的配色方案,使用的色彩也都趋于深色系!     虽然如今"暗黑系"并非大势,但他们的作品依旧充满了另类的吸引力.在黑与白的交错中,扑捉那份独特的情感体验!下面为大家介绍20款"暗黑系"的网页设计案例,让你感受光与影的美好!       Moreslee

不走寻常路 看“中国最贵云”用什么赢得客户?

阿里云.腾讯云.百度云,以及众多提供基础云服务商对降价越来越热衷,你方唱罢我登场,一轮又一轮的打折.降价活动层出不穷,基础云服务是否会沦为云计算价格战的主战场? 青云QingCloud副总裁卢敏认为,由于规模效应和技术的进步,基础云服务降价是必然.据了解,青云承诺每年都会进行两次降价."我们也在矢志不渝的让整个系统的成本可控.运作高效,保持合理盈利空间,在不断扩大规模的同时让利给客户." 不过,拼价格从来不是青云的风格,卢敏甚至将青云称为"国内最贵的云".他表示,在

俞永福发表了主题为不走寻常路的演讲

在中国企业家俱乐部举办的2014绿公司年会上, 新东方 创始人 俞敏洪 受邀做主题演讲.他从中国教育现状存在的问题谈起,过渡到当下热门的在线教育.他承认,新东方受到免费线上教育的冲击,商业模式必须做出改变.同时,他也强调,未来真正大行其道的一定是线上线下相结合的模式. 互联网到底对中国教育带来什么样革命? 首先,全世界的优质教育资源将会无边界地分享,几年前 网易 出现公开课,哈佛大学.剑桥大学.斯坦福大学优秀教师讲课视频在网上流传,MOCC大规模开放课程.连清华.北大都坐不住了,开始做自己的MO