读书人

关于Form的Action属性和Runat=quot;server

发布时间: 2012-02-14 19:19:19 作者: rapoo

关于Form的Action属性和Runat="server"问题(难度中,经典问题)
问题是这样的,本例是将页面1的文本框的内容在页面上输出。

刚开始我使用vs建立页面时,默认Form表单都有runat= "server "属性,发现无法解决问题,提交页面后总是返回本页面,就是将 "自己 "提交了。后来,折腾了十来分钟发现必须把runat= "server "给删了,这样的话就不能使用asp.net的服务器端控件了。
经过查询资料得知,如果form中有runat= "server ",就是代码要在服务器端执行,这样页面就必须把自己提交了。

现在想请教一个问题,如何既可以解决上述问题,又可以使用runat= "server "(这样才可以使用服务端控件)

<!--下面是页面1的代码-->
<%@ Page Language= "C# " AutoEventWireup= "true " CodeFile= "Default.aspx.cs " Inherits= "_Default " %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN " "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">

<html xmlns= "http://www.w3.org/1999/xhtml " >
<head runat= "server ">
<title> 页面1 </title>
</head>
<body>
<form id= "form1 " action= "Default2.aspx " >
<div>
<input id= "Text1 " name= "text1 " type= "text " />
<input id= "Submit1 " type= "submit " value= "submit " />
</div>
</form>
</body>
</html>


<!--下面是页面2代码-->
<%@ Page Language= "C# " AutoEventWireup= "true " CodeFile= "Default2.aspx.cs " Inherits= "Default2 " %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN " "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">

<html xmlns= "http://www.w3.org/1999/xhtml " >
<head runat= "server ">
<title> 页面2 </title>
</head>
<body>
<form id= "form1 " runat= "server ">
<div>

</div>
</form>
</body>
</html>

//下面是页面2的code-behind代码
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Request[ "text1 "]);
}
}



[解决办法]
页一
Response.Redirect( "Default2.aspx?textvalue= "+Text1.Text);


页二
Response.Write(Request.QueryString[ "textvalue "]);

基础的重要性啊.
[解决办法]
ASP的思想又想用NET的控件,呵呵,NET在页面提交上面有很多种的,你可以在你的BUTTON中写代码POST或GET提交啊,处理数据就在本页面完成就好了,没必要在回到ASP年代了。

读书人网 >asp.net

热点推荐