乐观 发表于 2015-1-16 22:49:37

ASP.NET网页设计懂得ASP2.0向别的网页传送信息的办法

完全不一样的。.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举行传送的历程。
<%@Pagelanguage="vb"%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<html><head>
<title>CrossPostbackExample</title>
</head><body>
<formid="frmCrossPostback1"method="post"runat="server">
<asp:LabelID="lblName"runat="server"Text="Name:"></asp:Label>
<asp:TextBoxID="txtName"runat="server"></asp:TextBox><br/>
<asp:LabelID="lblE-mailAddress"runat="server"Text="E-mail:"></asp:Label>
<asp:TextBoxID="txtE-mailAddress"runat="server"></asp:TextBox><br/>
<asp:ButtonID="btnSubmit"runat="server"Text="Submit"PostBackUrl="CrossPostback2.aspx"/>
</form></body></html>中的ASP.NET页面具有两个文本域(分离暗示name(名字)和e-mail(电子邮件)),和一个用来提交数据的button(按钮)。这个提交按钮的PostBackUrl属性被指定为别的一个网页,如许使得表单提交的时分,数据能够发送到谁人页面。注重:这个例子中,表单位素经由过程设置method(办法)属性,让表单提交时接纳post提交体例,但这不是需要的,由于一切crosspostback(跨页送达)依据计划均利用post办法。
利用先前页面
ASP.NET页面经过跨页送达的挪用而载进的时分,它下面的工具的IsPostBack属性不会被触发。不外,有一项叫做PreviousPage(前一页)的属性使你可以会见和利用那些使用跨页送达的页面。
每当一个跨页哀求产生时,以后页的PreviousPage属性就把促发送达的页面援用保留上去。假如页面的发生不是来自跨页送达的引发,大概说页面处于分歧的程序组,那末PreviousPage属性将不会被初始化。
你能够经由过程反省PreviousPage工具来断定页面的载进是不是为跨页送达的了局。值假如为null,则申明是一般的载进,而非null值则标明网页来自跨页送达。别的,页面类(Pageclass)还包括了一个称作IsCrossPagePostBack的办法(method),专门用来断定页面是否是跨页送达的了局。
一旦断定产生了跨页送达,你就能够经由过程PreviousPage工具的FindControl办法往会见挪用页(callingpage)上的控件。上面的代码是我们例子中的第二页;它由后面列出的页面所挪用。
<%@Pagelanguage="vb"%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<html><head>
<title>CrossPostbackExample2</title>
</head><body>
<scriptlanguage="vb"runat="server">
SubPage_Load()
IfNot(Page.PreviousPageIsNothing)Then
IfNot(Page.IsCrossPagePostBack)Then
Response.Write("Name:"+CType(PreviousPage.FindControl("txtName"),TextBox).Text+"<BR>")
Response.Write("E-mail:"+CType(PreviousPage.FindControl("txtE-mailAddress"),TextBox).Text+"<BR>")
EndIf
EndIf
EndSub
</script></body></html>这个页先判别它是否是由跨页送达所挪用。假如是,就经由过程FindControl办法会见来自挪用页的数值,并把用此办法失掉的控件转换为TextBox控件,然后显现它们的Text(文本)属性的内容。
你能够把全部PreviousPage工具转换成触发跨页送达的页面范例。这个办法同意你会见页面的全局属性(publicproperties)和办法。在我给出这项手艺的实例之前,我有需要重写第一个例子,包括进一些全局属性。上面代码是增加了两个属性的第一个清单,这两个属性用于会见域值。
<%@Pagelanguage="vb"%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<html><head>
<title>CrossPostbackExample</title>
<scriptlanguage="vb"runat="server">
PublicReadOnlyPropertyName
Get
ReturnMe.txtName.Text
EndGet
EndProperty
PublicReadOnlyPropertyE-mailAddress
Get
ReturnMe.txtE-mailAddress.Text
EndGet
EndProperty
</script></head><body>
<formid="frmCrossPostback1"method="post"runat="server">
<asp:LabelID="lblName"runat="server"Text="Name:"></asp:Label>
<asp:TextBoxID="txtName"runat="server"></asp:TextBox><br/>
<asp:LabelID="lblE-mailAddress"runat="server"Text="E-mail:"></asp:Label>
<asp:TextBoxID="txtE-mailAddress"runat="server"></asp:TextBox><br/>
<asp:ButtonID="btnSubmit"runat="server"Text="Submit"PostBackUrl="CrossPostback2.aspx"/>
</form></body></html>既然如今属性已建好,那你就可以很简单会见它们。要小心的是,Page类的PreviousPage工具必需转换成准确的范例,如许才干准确会见它的属性。这能够经由过程把它转换成符合的page种别的工具加以完成。
<%@Pagelanguage="vb"%>
<%@ReferencePage="~/CrossPostback1.aspx"%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<html><head>
<title>CrossPostbackExample3</title>
</head><body>
<scriptlanguage="vb"runat="server">
SubPage_Load()
DimcppPageAsCrossPostback1_aspx
IfNot(Page.PreviousPageIsNothing)Then
IfNot(Page.IsCrossPagePostBack)Then
If(Page.PreviousPage.IsValid)Then
cppPage=CType(PreviousPage,CrossPostBack1_aspx)
Response.Write("Name:"+cppPage.Name+"<br>")
Response.Write("E-mail:"+cppPage.E-mailAddress)
EndIf
EndIf
EndIf
EndSub
</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。

冷月葬花魂 发表于 2015-2-13 22:49:05

CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。

深爱那片海 发表于 2015-3-4 02:48:58

由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。

莫相离 发表于 2015-3-11 15:34:22

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。

金色的骷髅 发表于 2015-3-19 01:25:19

在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。

飘飘悠悠 发表于 2015-3-27 01:10:17

现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。
页: [1]
查看完整版本: ASP.NET网页设计懂得ASP2.0向别的网页传送信息的办法