关于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 "]);
}
}
------解决方案-------