仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 634|回复: 7
打印 上一主题 下一主题

[学习教程] NET网页编程之ASP.NET表达式树构建DomainRoute的URL域名

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:25:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
J2EE比较成熟一点,一些比较出名的企业应用软件都是基于J2EE的。以后的发展就不好说了。不过java比较烦,学.net的话,微软把很多工具都封装好了,学起来可能容易一点。<p>这里我们将先容ASP.NET表达式树来构建mainRoute的URL,本文将利用相似于MvcFutures中界说的基于表达式树的帮助办法。
因为DomainRoute撑持针对URL域名的捕捉和机关,这有些损坏了ASP.NETRouting所制订的“协定”(ASP.NETRouting只撑持Path),因而在上一篇文章中,我们必要本人机关一个帮助办法来取得一个“包括域名”的URL。不外依据尽量强范例的准绳,我们应当利用的是相似于MvcFutures中界说的基于表达式树的帮助办法。因为MvcFutures已供应了十分充分的帮助功效,因而这实在其实不必要泯灭我们几价值。
我们编写了如许的ASP.NET表达式树帮助办法:
<OLclass=dp-xml>publicstaticstringActionEx(thisUrlHelperhelper,stringaction,objectrouteValues){varvalues=routeValues==null?newRouteValueDictionary():newRouteValueDictionary(routeValues);values.Add("action",action);values.Add("controller",helper.RequestContext.RouteData.Values["controller"]);returnhelper.GetRouteUrl(values);}privatestaticstringGetRouteUrl(thisUrlHelperhelper,RouteValueDictionaryvalues){varpathData=helper.RouteCollection.GetPath(helper.RequestContext,values);varurl=pathData.VirtualPath;returnIsAbsolute(url)?url:"/"+url;}
可是依据我们的必要,我们应当想法编写以下的代码:
<OLclass=dp-xml><ahref="c.Index())%>">Homea>
那末,这个ActionEx办法的署名应当是甚么样的呢?从一个办法的挪用体例上得出它的署名也是机关优秀API的需要才能。在这里,我们能够把ActionEx办法的署名定成:
<OLclass=dp-xml>publicstaticstringActionEx<TController>(thisUrlHelperhelper,Expression<Action<TController>>action)whereTController:Controller{returnActionEx(helper,action,null);}publicstaticstringActionEx<TController>(thisUrlHelperhelper,Expression<Action<TController>>action,objectrouteValues)whereTController:Controller{...}
与本来的ActionEx办法分歧,本来的ActionEx办法仅仅照顾了一个字符串,而如今的action是一个ASP.NET表达式树,个中包括了大批的信息:挪用哪一个Controller中的哪一个Action办法,并利用了哪些参数。比方,以下两种用法,终极天生的URL是不异的:
<OLclass=dp-xml><%=Url.ActionEx("List",new{controller="Post",id=5,area="blogs"})%><%=Url.ActionEx<PostController>(c=>c.List(5),new{area="blogs"})%>
如许,您应当就能够看出两种情形下,各类需要的数据是怎样传送出去的。因而,新增的ActionEx办法应当是如许:
<divclass="code"><OLclass=dp-xml>publicstaticstringActionEx<TController>(thisUrlHelperhelper,Expression<Action<TController>>action,objectrouteValues)whereTController:Controller{var<SPANclass=attribute><FONTcolor=#ff0000>如果需要重新编写代码,几乎任何一门计算机语言都可以跨平台了,还用得着Java嘛,而且像PHP/C#等语言不需要修改代码都可以跨Windows/Linux。
灵魂腐蚀 该用户已被删除
沙发
发表于 2015-1-18 14:26:15 | 只看该作者
平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。
变相怪杰 该用户已被删除
板凳
发表于 2015-1-22 19:18:06 | 只看该作者
Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。
兰色精灵 该用户已被删除
地板
发表于 2015-1-31 12:44:42 来自手机 | 只看该作者
这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。
简单生活 该用户已被删除
5#
发表于 2015-2-6 19:41:19 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
柔情似水 该用户已被删除
6#
发表于 2015-3-6 05:33:41 | 只看该作者
主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。
深爱那片海 该用户已被删除
7#
发表于 2015-3-12 21:29:06 | 只看该作者
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
金色的骷髅 该用户已被删除
8#
发表于 2015-3-20 04:19:51 | 只看该作者
比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-28 00:26

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表