问题是这样的,本例是将页面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"]);
}
}
经过查询资料得知,如果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"]);基础的重要性啊.
我把所有的控件都转换成服务器控件了。这样那个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"]);
}