日期:2014-05-19  浏览次数:20432 次

关于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 "]);
        }
}



------解决方案-------