仓酷云
标题:
NET网页编程之ASP.NET表达式树构建DomainRoute的URL域名
[打印本页]
作者:
萌萌妈妈
时间:
2015-1-16 14:25
标题:
NET网页编程之ASP.NET表达式树构建DomainRoute的URL域名
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>
<a
href
=
"c.Index())%>"
>
Home
a>
那末,这个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
平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。
作者:
变相怪杰
时间:
2015-1-22 19:18
Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。
作者:
兰色精灵
时间:
2015-1-31 12:44
这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。
作者:
简单生活
时间:
2015-2-6 19:41
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
作者:
柔情似水
时间:
2015-3-6 05:33
主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。
作者:
深爱那片海
时间:
2015-3-12 21:29
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
作者:
金色的骷髅
时间:
2015-3-20 04:19
比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2