问题是这样的,本例是将页面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"]);
    }
}

解决方案 »

  1.   

    页一
    Response.Redirect("Default2.aspx?textvalue="+Text1.Text);
    页二
    Response.Write(Request.QueryString["textvalue"]);基础的重要性啊.
      

  2.   

    使用 get请求啊,我试试。
      

  3.   

    xunuo230() 正解。
    我把所有的控件都转换成服务器控件了。这样那个action属性似乎也白设了,呵呵。自己没想到用get,刚开始自己自己在Submit1_ServerClick添加一个Response.Redirect("Default2.aspx"),
    是可以页面跳转了,可是没有按要求输出。看来只能用get,怎么就没想到?BS一下自己
    页一
    protected void Submit1_ServerClick(object sender, EventArgs e)
        {
            Response.Redirect("Default2.aspx?textValue=" + Text1.Value);
        }页二
    protected void Page_Load(object sender, EventArgs e)
        {
          Response.Write (  Request.QueryString["textValue"]);
        }