Redirect扩展方法
单看标题,可能很多朋友不知道我到底想写什么。在写这篇文章前,我自己跟自己斗争了很久,到底该不该写这篇文章?毕竟从现实主义来看,这篇文章可能落入“瞎扯淡”的行列,因为对大多数朋友来说,以下的所有扩展方法可能都不会用到。 如果真是这样,就当作一个“漫无边际”的想法来看好了。如果你根本不想浪费你的宝贵时间,就点这里 Redirect 回博客园主页,呵呵 一个 Redirect 为什么也可以耗费一篇文章的笔墨? 就 Redirect 一词成文的先例估计不会是我,但如果 扩展方法 + Redirect 这个话题,我可能就是第一人了。 葫芦里卖的是什么药? 这个“漫无边际”的想法实现的效果是: 如果页面是Foo.aspx,
“漫无边际”的想法来源: Asp.Net MVC 是这个想法的主要来源,学习过 Asp.Net MVC的朋友都熟悉Controller 是如何获知返回的页面,主要方法: public ActionResult Index()
不懂 Asp.Net MVC 的朋友也没关系,因为本文实际上跟 Asp.Net MVC 完全没关系,跟稍后讲 WebForm 的 View 扩展方法也完全是没有任何一点关系,仅是方法名相同而已。 如何实现? 对于最简单的情况:页面在根目录,就直接根据 类名 + ".aspx" 返回就可以了 public static string Url(this IHttpHandler httpHandler ) 但如果是多层目录: 如何根据类型来返回我们需要的页面 Url 呢?那么我们得变通一下才行。怎么变通?就是把命名空间也扯上来:
例如这里Home文件夹里的Index.aspx 页面后台的命名空间是 RedirectTests.Views.Home,就根据这个命名空间和类名来拼装出 "~/Views/Home/Index.aspx" 还不简单嘛。 示例代码: public static string Url(this IHttpHandler httpHandler) 以上代码限制路径只能在 Views 文件夹下了,有兴趣的朋友不妨改改。 如何为 Url 添加查询字符串? 啥?这也是一个问题?我见过不少朋友写查询字符串时基本上是这样写的: string url = "~/Foo.aspx?param1=" + value1 + "¶m2=" + value2 ...; 或者,想写美观一点的朋友就这样写: string url = string.Format( "~/Foo.aspx?param1={0}¶m2={1}" , value1, value2); 当查询字符串比较长时,那可就有些乱了。个人觉得以Asp.Net MVC 那 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |