asp.net4的webform使用路由

发布时间:2018-11-15  栏目:MySQL  评论:0 Comments

 

简介:
ASP.NET 4 增加了针对性下 Web 窗体进行路由的放置支持。 路由是 ASP.NET 3.5
SP1
引入的均等码意义,通过此作用可拿应用程序配置也利用对用户和查找引擎起义的
URL,这样不管需点名物理文件称。
使用这项功能,可以加强站点的用户自己度,并加站点内容为搜引擎发现的概率。

 

if (Page.RouteData.Values.ContainsKey("id"))
this.lb.Text = Page.RouteData.Values["id"].ToString();

*    2002年微软发布.NET正式版本.NET Framework
1.0,其中的ASP版本就是ASP.NET
1.0,在斯先发布了简单单.NET测试版本Betal和Beta2。*

RouteValueDictionary p = new RouteValueDictionary { { "id", "3" } };
VirtualPathData vpd = RouteTable.Routes.GetVirtualPath(null, "edit", p);
this.HyperLink4.NavigateUrl = vpd.VirtualPath;

<a href="<%=this.GetRouteUrl("my-route-name", new { id="123"}) %>">xxx</a>

 

页面url连接的缔造
以其实利用得是如果页面跳转的,asp.net4供了多主意来创造符合路由于规则之页面url。具体如下:
方法一:
直接按规则,来创造url,如下:

 

方法二:
使用RouteUrl来创建url,如下:

 

<asp:HyperLink ID="link1" runat="server" Text="Show All" NavigateUrl="~/show/all">
</asp:HyperLink>
<br />
<asp:HyperLink ID="HyperLink1" runat="server" Text="Edit 1" NavigateUrl="~/Edit/1">
</asp:HyperLink>

*   
2001年,ASP.NET浮出水面。它最初的讳啊ASP+,后来反呢ASP.NET。ASP.NET是微软商家付出的同一种植起在.NET之上的Web运行环境,它不是ASP的粗略升级,而是新一代的Active
Server
Pages。ASP.NET是微软公司新系布局Microsoft.NET的同等部分,其中新的艺架构使编程变得更加简明。借助于ASP.NET,可以创造出内容丰富的、动态的、个性化的Web站点。ASP.NET简单易学、功能强大、应用灵活、扩展性好,可以利用任何.NET兼容语言。 [4-5] *

赢得URL中之参数
Page.RouteData中隐含我们要之URL参数.因此,我们好透过以下方式来博URL中之参数,如下:
方式一致:在继台.CS文件写如下代码:

翻阅本文请留意,假如你感到乱,那么即便甭看引用的局部,可以大体先只读外情节。

图片 1图片 2View Code

   首先是起asp.net的技艺基础,以下援引百度百科:

应用手续:
1.添加大局文件Global.asax,引用命名空间System.Web.Routing,(如果没的话,则向项目面临补充加对System.Web.Routing的援)然后以Application_Start
事件受到登记相应的路由.
以身作则代码如下:

   “PHP(外文名:PHP: Hypertext
Preprocessor,中文名:“超文本先处理器”)是一模一样栽通用开源脚本语言。语法吸收了C语言、Java和Perl的风味,利于学习,使用广泛,主要适用于Web开世界。PHP
独特的语法混合了C、Java、Perl以及PHP自创的语法。它好于CGI或者Perl再次高速地实施动态网页。用PHP做出的动态页面跟另外的编程语言相比,PHP是将程序嵌入到HTML(业内通用标记语言下的一个施用)文档中失执行,执行效率比完全成形HTML标记的CGI设高多;PHP还得履编译后代码,编译可以达标加密和优化代码运行,使代码运行更快。”

方法三:
通过.cs后台代码来具体,比如:页面有只超连接,如下:

 
 JSP技术比php、asp技术来的再度晚,JSP技术现在叫用来开发超大型网站,但是连无是以JSP技术自很优良,而是以它们产生于java之上。

        protected void Application_Start(object sender, EventArgs e)
        {
            RegisteRoutes(RouteTable.Routes);
        }

        private void RegisteRoutes(RouteCollection routes)
        {
            //其中需要说明的是asp.net 4中使用routes.MapPageRoute方法来添加相应的路由规则.它和.net 3.5 sp1中的routes.add是一样的.只不过更方便些.
            //第一个参数:路由规则名称,用于区别不同的路由规则(随便起)
            //第二个参数:路由规则,{}代表匹配任意,不带{}则表示精确匹配
            //第三个参数:该路由交给那个页面处理,物理页面的路径
            routes.MapPageRoute("", "", "~/Default.aspx");
            routes.MapPageRoute("list", "Items/{action}", "~/Items/list.aspx", false, new RouteValueDictionary { { "action", "all" } });
            routes.MapPageRoute("show", "Show/{action}", "~/show.aspx", false, new RouteValueDictionary { { "action", "all" } });
            routes.MapPageRoute("edit", "Edit/{id}", "~/edit.aspx", false, new RouteValueDictionary { { "id", "1" } }, new RouteValueDictionary { { "id", @"\d+" } });
            官方参数说明:

            routeName
            类型:System.String
            路由的名称。
            routeUrl
            类型:System.String
            路由的 URL 模式。
            physicalFile
            类型:System.String
            路由的物理 URL。
            checkPhysicalUrlAccess
            类型:System.Boolean
            一个值,该值指示 ASP.NET 是否应验证用户是否有权访问物理 URL(始终会检查路由 URL)。 此参数设置 PageRouteHandler.CheckPhysicalUrlAccess 属性。 
            defaults
            类型:System.Web.Routing.RouteValueDictionary
            路由的默认值。
            constraints
            类型:System.Web.Routing.RouteValueDictionary
            一些约束,URL 请求必须满足这些约束才能作为此路由处理。
        }

 

方法二:在页面中直接用RouteValue,如下:

   从asp到asp.net,在webform框架中大量内置了ASP.NET
服务器控件,这是一个颇挺之改,这种服务器控件分三种植:

<asp:HyperLink ID="HyperLink4" runat="server" Text="Code behind Edit 2">
</asp:HyperLink>

   
 我以asp.net的webform框架进行web应用程序的开销都大半四年了,在周开发生涯被,也使了千篇一律年asp.net的mvc框架。因为网上经常发出议论webform框架和mvc框架的优劣,所以自己为本着立即两头进行了关怀,因为自己太熟悉webform框架,所以就是见面考虑她的优势是呀?设计思路是呀?

<asp:HyperLink ID="HyperLink2" runat="server" Text="RouteUrl Show All " NavigateUrl="<%$RouteUrl:routename=show%> ">
</asp:HyperLink>
<br />
<asp:HyperLink ID="HyperLink3" runat="server" Text="RouteUrl Edit 2" NavigateUrl="<%$RouteUrl:id=2,routename=edit %>">
</asp:HyperLink>
<br />

*   
2000年6月,微软公司颁发了自己的.NET框架。.NET框架的为主考虑是:把旧的要从连续到互联网的单一网站或设施转移至计算机、设备及劳务群组上,而以互联网本身作为新一代操作系统的根底。这样,用户将会控制信息之传递方式、时间跟内容,从而获得重新多之服务。*

http://msdn.microsoft.com/zh-cn/library/dd329551(d=lightweight).aspx

她实现了Html语法中的java扩展(以 <%,
%>形式)。JSP与Servlet一样,是在劳动器端执行之。通常返回给客户端的即使是一个HTML文本,因此客户端只要出浏览器就可知浏览。

方四:建议写成GetRouteUrl,这样你以后路由于规则换了,这个链接也未会见失效

 

计三: 仍然可据此以前的Request.Form来拍卖

   
由于未会见php和jsp就不曾道相比就点儿种技术了,其实生想念将她也牵涉进去对比下,特别是jsp技术,因为java的跨平台性,jsp设计时不见面出无限多windows的影,windows常常有种植不思告知你复杂的实质,所以我深受您打包一个简单易行的世界被你的感到,然后趁着你的成人,这种早期的包装或者会见是一个大之负,或者说微软的物有极端多windows的影,过于围绕windows了。

官示例:

   
最后总结一下,如果您放自己神魂颠倒的神经,不被协调设限,随意联想,随意设计,不过分考虑周全,你会倍感到web技术进步有想之袭和革命。从简单的html纯文本展示,文本浏览器的说明,背后的http协议0.9,再至图片展示,LiveScript的阐明(就是javascript),到CGI程序,再届Servlet拼接html技术,到php脚本,到asp动态页面技术,到jsp动态页面技术,到webfrom框架,spring框架,mvc框架这些技巧背后隐隐有相同长思想在串联起来。一个物的阐明不是突发性的,往往有一个不起眼的原初。

<asp:Label ID="lb1" runat="server" Text="<%$RouteValue:id%>"></asp:Label>

网上有人说,这是以缓解开发asp页面会招致意大利面的题材。我之喻服务器控件的变动远不止于之,假如你创造一个纯粹服务器控件的页面(asp.net出现不久,很多人口即便非建议这样干了,至于何以,我知道会生成大量viewstate串,当然还起另原因),然后对页面元素进行操作,随着以的纯,你或会见发现及webform的页面文件不是在html字符中间并东西,或者说不是于平堆积服务器无法掌握的东东中游,动态的成形有字符。它发展了多步,它将页面的有着html便签长标识,经过页面引擎处理,变成了可以给活操作的类,程序开发人员可以肆意操作这些标签类,然后以一个适用的上,再以这些近似依次的“ToString()”成字符串,拼到页面及。发明服务器控件技术,作者的考虑根源或是桌面应用程序开发技术,从dos操作系统(命令执行交互),到视窗操作系统(主要是鼠标点击、键盘按键交互),开发桌面应用程序,会大量以控件技术,控件复用技术可以大大升级开发效率。为什么猜测作者的构思可能出自此,因为asp技术出现经常,当时桌面应用程序开发要主流,作者或感染在这种气氛外,把桌面应用程序开发的筹划思想转换至web主次的开支。这里要引出另外一个事物,就是事件驱动,随便新建一个aspx页面,最重点的凡事件处理方法,Page_Load。windows操作系统被大量运事件驱动,是基于“事件驱动模型”的。那么笔者在webform中采取事件驱动,也说不定借鉴了windows。

那,后台.cs代码可以来给HyperLink的url赋值:

   
要解asp.net的计划思路,必须考虑其的生年代,产生的技术基础,还有观察同时代其他动态网页技术之特色以及笔触。

    虽然本人从没打算梳理叙述.net的出及发展,但是asp.net
webform的发也跟.net平台好紧凑。

 

 

   
php的起早于asp技术,asp应该是吸纳有php技术的盖思想之,之所以称之为建造,是以php的起点非常低,并不曾受开展充分的筹划,它是由一个不怎么器快速发展起来的。这里尚眷恋取一下另外一个首要的动态网页技术,再次援引下百度过全面:

 
 这个时代的asp、php、jsp等动态网页技术,都发出一个共同点,就是你拜访url地址,肯定是是一个这么一个文书在的。asp.net产生的艺基础是asp,那么asp.net的webform框架下就无异思想就顺理成章了。webform的页面文件来半点有的,后缀名是.aspx和.aspx.cs两有组成。这个是有别于asp的,asp页面文件只生一个,后缀名是.asp。从.asp到.aspx我们得观看,aspx是以asp的末端加了x字母,联想微软的另外产品,.docx取代.doc、.xlsx取代.xls,多少好窥探到微软本着技术升级的命名思考。

   
在asp产生的先头少年,产生了另外一个可怜资深的动态网页技术,那就是是PHP。这里推荐一下php的概念:

   
如果要是评与审美webform框架的宏图思想,不得不对比另外一个框架思想,那便是mvc的框架(模型)的计划思想。mvc模型的阐发,或许不是刻意设计,而是指向事情的尖锐思考,然后抓住实质的结局。mvc模型是为处理问题清晰明了,降低耦合性。

本文并从未进展认真的观测以及视察,有的地方可能是一无是处的,一些技的申先后为或连无可靠。但是要和被关心一个技术的进步历史之思绪,能叫您上提供一些优点。

*   
JSP技术下Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的拍卖逻辑。网页还能够由此tags和scriptlets访问有吃劳动端的资源的应用逻辑。JSP将网页逻辑和网页设计的显示分离,支持但选用的基于组件的计划,使基于Web的应用程序的开销变得飞快和容易。
JSP(JavaServer
Pages)是同一栽动态页面技术,它的基本点目的是用象征逻辑从Servlet遭到分别出来。*

   
不管是服务器控件,还是事件驱动,这点儿种(或者说是一种,因为控件和事件里以就互相关系)设计思想非常死的熏陶了webform框架,开发web应用程序的方法。服务器控件加事件驱动虽然方便很快开发一个管制系统型web程序,但是连无适合web应用程序本身的运行思想,这等同接触于过多丁批评,web程序为未运行于桌面操作系统中,最早的时它竟然无克相互,只是为便于交流信息,只用于展示信息。web程序本质运行原理是,通过浏览器为web服务器发送请求处理命令,有web托管程序接收请求命令,进行操作,然后回处理结果(结果或者是亮同首文章,或者是告您文章删除成功,或者是拿您提价的信息内容进行了保留)。webform容易受人口误会她运行在操作系统或者浏览器中,所有代码执行在客户端。虽然现在底浏览器真的可以将动态页面在浏览器端执行,但是webform页面其实是起劳务器端的程序处理的。

   以上叙述,讲到了asp.net
 webform将页面文件拆分成了少于个组成部分。这是好怪的一个改善,这种改进是以缓解一部分问题(不是一个,是均等系列问题)。改进asp技术cs代码和html混在一块儿,暴露代码细节,asp页面不见面给编译成dll。同时也闹其它优势。

    

*    2005年微软发布.NET Framework 2.0专业版本,也便是ASP.NET 2.0。*”

  • HTML 服务器控件 – 传统的 HTML 标签
  • Web 服务器控件 – 新的 ASP.NET 标签
  • Validation 服务器控件 – 用于输入验证

*   “1996年,ASP 1.0(Active Server
Pages)版本出现了,它引起了Web开发的新革命,降低了动态网页开发之难度。以前开动态网页需要编制大量零乱的C代码,编程效率非常低下,而且亟需Web网页开发者掌握好大的编程技巧。而ASP使用简单的脚本语言,能够用代码直接坐HTML,使设计Web页面变得再简短。虽然ASP非常简单,但却能够落实深强的力量,这一体得益于该组件。特别是ADO组件,使得在网页遭到走访数据库易使反掌。这总体推动了动态网页的高效上扬以及建设,同时使ASP得到迅速流行。*

Java Servlet是JSP的技巧基础,而且重型的Web应用程序的开发要Java
Servlet和JSP配合才能够形成。JSP具备了Java技能的略好用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。

 

*    1998年,微软公司发布了ASP 2.0,它是作Windows NT 4 Option
Pack的同等片段提供的。ASP 2.0与ASP
1.0之重大区别是表面的机件可以初始化,使有的零件都出了独立的内存空间,并且可拓展事务处理。内置的Microsoft
Transaction Server(MTS)使打零部件变得再易。*

 

    “JSP全名为Java Server
Pages,中文名叫java服务器页面,其从是一个简化的Servlet设计,它 [1]  是由Sun
Microsystems号发起、许多铺涉足一起成立的一致种植动态网页技术标准。JSP技术有点类似ASP技术,它是于风的网页HTML(标准通用标记语言的子集)文件(\
.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。
用JSP开发的Web应用是跨平台的,既会当Linux下运行,也克以另外操作系统及运行。*

 

*    2003年微软披露了.NET Frameworrk 1.1标准版,其中ASP版本就是ASP.NET
1.1。*

   
这是千篇一律段引自百度百科,介绍起asp发展及asp.net的记述。阅读这段记述你当发现及,asp.net是自asp1.0开始提高来之,但是其不是直接从asp发展至asp.net的,首先是asp1.0,然后是asp2.0,然后是asp+,再然后更名为asp.net(这里要分别看就是asp
 、
 .net这是简单单词,因为在asp的腾飞进程中另外一个死的项目.net出现了,.net为什么起,不以谈论范围,可以活动百度)。asp.net1.1术之web框架就是webform。

留下评论

网站地图xml地图