仓酷云

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

[学习教程] ASP.NET网页设计懂得ASP2.0向别的网页传送信息的办法

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

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

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

x
完全不一样的。.net其实我也说不太清,.net可以把他理解为跟J2EE相对的工具。c++主要做系统相关的开发你要学.net的话就应该学C#。(其实微软在.NET平台上也考虑了给C++留一个地位。网页
尺度HTML表单(form元素)同意你向别的一个页面大概使用程序传送和发送数据信息,办法是利用表单位素。在ASP.NET1.x中,网页则使用送达机制,把页面数据提交给该页自己。关于ASP.NET2.0,它的功效有所扩大,可以同意跨页提交。这周就让我们来切磋这个新特征。

传统举措

为了便于对照,我想花一分钟往返顾网页传送数据的老办法。HTML的表格元素有一个action(举措)属性,用来指定服务器端哪项资本(所谓资本,是指一个网页、一段剧本、程序等)来处置这些提交的数据。上面的代码即是一个样例。

<html>

<head><title>SampleHTMLform</title></head>

<body>

<formname="frmSample"method="post"action="target_url">

<inputtype="text"name="fullname"id="fullname"/>

<inputtype="button"name="Submit"value="submit"/>

</form>

</body></html>

在文本域(名字是fullname)中输出的值将被提交给表单位素的action属性指定的页面大概程序。关于ASP.NET开辟者,即便已经用过尺度HTML表单,也是极未几见的。

ASP.NET开辟者面临要从一个网页向另外一个网页传送数据信息的义务时,办法选择的余地是非常宽广的。它们包含会话变量(sessionvariables)、cookies、querystring变量、caching(网页缓存),乃至Server.Transfer办法,可是ASP.NET2.0还供应了别的一种选择。

ASP.NET2.0供应的又一举措

在计划ASP.NET2.0的时分,微软熟悉到了在网页间交织传送数据的需求。有了这个认识以后,就为ASP.NET的button(按钮)控件增添了一项PostBackUrl属性。它同意你在用户提交的时分,指明这张表单和下面的数据送往何方(也就是由PostBackUrl属性指定的URL值断定)。一样平常来说,跨页传送是客户端在背景利用JavaScript举行传送的历程。
  1. <%@Pagelanguage="vb"%>
  2. <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
  3. <html><head>
  4. <title>CrossPostbackExample</title>
  5. </head><body>
  6. <formid="frmCrossPostback1"method="post"runat="server">
  7. <asp:LabelID="lblName"runat="server"Text="Name:"></asp:Label>
  8. <asp:TextBoxID="txtName"runat="server"></asp:TextBox><br/>
  9. <asp:LabelID="lblE-mailAddress"runat="server"Text="E-mail:"></asp:Label>
  10. <asp:TextBoxID="txtE-mailAddress"runat="server"></asp:TextBox><br/>
  11. <asp:ButtonID="btnSubmit"runat="server"Text="Submit"PostBackUrl="CrossPostback2.aspx"/>
  12. </form></body></html>
复制代码
中的ASP.NET页面具有两个文本域(分离暗示name(名字)和e-mail(电子邮件)),和一个用来提交数据的button(按钮)。这个提交按钮的PostBackUrl属性被指定为别的一个网页,如许使得表单提交的时分,数据能够发送到谁人页面。注重:这个例子中,表单位素经由过程设置method(办法)属性,让表单提交时接纳post[2]提交体例,但这不是需要的,由于一切crosspostback(跨页送达)依据计划均利用post办法。

利用先前页面

ASP.NET页面经过跨页送达的挪用而载进的时分,它下面的工具的IsPostBack属性不会被触发。不外,有一项叫做PreviousPage(前一页)的属性使你可以会见和利用那些使用跨页送达的页面。

每当一个跨页哀求产生时,以后页的PreviousPage属性就把促发送达的页面援用保留上去。假如页面的发生不是来自跨页送达的引发,大概说页面处于分歧的程序组,那末PreviousPage属性将不会被初始化。

你能够经由过程反省PreviousPage工具来断定页面的载进是不是为跨页送达的了局。值假如为null,则申明是一般的载进,而非null值则标明网页来自跨页送达。别的,页面类(Pageclass)还包括了一个称作IsCrossPagePostBack的办法(method),专门用来断定页面是否是跨页送达的了局。

一旦断定产生了跨页送达,你就能够经由过程PreviousPage工具的FindControl办法往会见挪用页(callingpage)上的控件。上面的代码是我们例子中的第二页;它由后面列出的页面所挪用。
  1. <%@Pagelanguage="vb"%>
  2. <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
  3. <html><head>
  4. <title>CrossPostbackExample2</title>
  5. </head><body>
  6. <scriptlanguage="vb"runat="server">
  7. SubPage_Load()
  8. IfNot(Page.PreviousPageIsNothing)Then
  9. IfNot(Page.IsCrossPagePostBack)Then
  10. Response.Write("Name:"+CType(PreviousPage.FindControl("txtName"),TextBox).Text+"<BR>")
  11. Response.Write("E-mail:"+CType(PreviousPage.FindControl("txtE-mailAddress"),TextBox).Text+"<BR>")
  12. EndIf
  13. EndIf
  14. EndSub
  15. </script></body></html>
复制代码
这个页先判别它是否是由跨页送达所挪用。假如是,就经由过程FindControl办法会见来自挪用页的数值,并把用此办法失掉的控件转换为TextBox控件,然后显现它们的Text(文本)属性的内容。

你能够把全部PreviousPage工具转换成触发跨页送达的页面范例。这个办法同意你会见页面的全局属性(publicproperties)和办法。在我给出这项手艺的实例之前,我有需要重写第一个例子,包括进一些全局属性。上面代码是增加了两个属性的第一个清单,这两个属性用于会见域值。
  1. <%@Pagelanguage="vb"%>
  2. <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
  3. <html><head>
  4. <title>CrossPostbackExample</title>
  5. <scriptlanguage="vb"runat="server">
  6. PublicReadOnlyPropertyName
  7. Get
  8. ReturnMe.txtName.Text
  9. EndGet
  10. EndProperty
  11. PublicReadOnlyPropertyE-mailAddress
  12. Get
  13. ReturnMe.txtE-mailAddress.Text
  14. EndGet
  15. EndProperty
  16. </script></head><body>
  17. <formid="frmCrossPostback1"method="post"runat="server">
  18. <asp:LabelID="lblName"runat="server"Text="Name:"></asp:Label>
  19. <asp:TextBoxID="txtName"runat="server"></asp:TextBox><br/>
  20. <asp:LabelID="lblE-mailAddress"runat="server"Text="E-mail:"></asp:Label>
  21. <asp:TextBoxID="txtE-mailAddress"runat="server"></asp:TextBox><br/>
  22. <asp:ButtonID="btnSubmit"runat="server"Text="Submit"PostBackUrl="CrossPostback2.aspx"/>
  23. </form></body></html>
复制代码
既然如今属性已建好,那你就可以很简单会见它们。要小心的是,Page类的PreviousPage工具必需转换成准确的范例,如许才干准确会见它的属性。这能够经由过程把它转换成符合的page种别的工具加以完成。
  1. <%@Pagelanguage="vb"%>
  2. <%@ReferencePage="~/CrossPostback1.aspx"%>
  3. <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
  4. <html><head>
  5. <title>CrossPostbackExample3</title>
  6. </head><body>
  7. <scriptlanguage="vb"runat="server">
  8. SubPage_Load()
  9. DimcppPageAsCrossPostback1_aspx
  10. IfNot(Page.PreviousPageIsNothing)Then
  11. IfNot(Page.IsCrossPagePostBack)Then
  12. If(Page.PreviousPage.IsValid)Then
  13. cppPage=CType(PreviousPage,CrossPostBack1_aspx)
  14. Response.Write("Name:"+cppPage.Name+"<br>")
  15. Response.Write("E-mail:"+cppPage.E-mailAddress)
  16. EndIf
  17. EndIf
  18. EndIf
  19. EndSub
  20. </script></body></html>
复制代码
申明了这一点,它在页面头部界说了挪用页的一项援用,那样这个援用范例就可以在代码中利用。经由过程这项援用,实践的VB.NET代码利用CType函数把PreviousPage工具转换成了得当的范例。这以后,那些属性就能够像代码树模的那样利用了。

关于上述清单中PreviousPage工具IsValid办法的利用在此提示一下:前页的IsValid属性包管你对它操纵之前,它已经由过程一切正当考证测试。

总结

在网页间传送数据参数有良多项使用,包含坚持团体用户信息。家传的网页办理计划,像利用querystring和cookies,同意你很简单当提交产生时从一个页面指向另外一个页面。

ASP.NET1.1除供应分外办法外,对这些办法也能很好地撑持,但是,ASP.NET2.0依托跨页送达,使这方面又有了长足开展。它让一个网页处置来自另外一网页的数据变得复杂。在你开辟你的下一个ASP.NET2.0程序的时分,可要好好使用这个新观点的上风啊。

简单的说:.net只有微软一家在做的,微软也不允许别人跟他做相同的工具,所以他就把需要的工具全部封装在.net的平台上了;而java是公开了。
老尸 该用户已被删除
沙发
发表于 2015-1-20 05:15:27 | 只看该作者
ASP.NET可以无缝地与WYSIWYGHTML编辑器和其他编程工具(包括MicrosoftVisualStudio.NET)一起工作。这不仅使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到Web页的GUI和完全集成的调试支持。微软为ASP.net设计了这样一些策略:易于写出结构清晰的代码、代码易于重用和共享、可用编译类语言编写等等,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要。
若天明 该用户已被删除
板凳
发表于 2015-1-28 17:57:09 | 只看该作者
众所周知,Windows以易用而出名,也因此占据不少的服务器市场。
admin 该用户已被删除
地板
发表于 2015-2-5 22:23:25 | 只看该作者
现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-13 22:49:05 | 只看该作者
CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。
深爱那片海 该用户已被删除
6#
发表于 2015-3-4 02:48:58 | 只看该作者
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
莫相离 该用户已被删除
7#
发表于 2015-3-11 15:34:22 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
金色的骷髅 该用户已被删除
8#
发表于 2015-3-19 01:25:19 | 只看该作者
在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。
飘飘悠悠 该用户已被删除
9#
发表于 2015-3-27 01:10:17 | 只看该作者
现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-8 10:53

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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