有关POST的问题
假设我们有两个页面。Default.aspx和Choice.aspx页面。我在Default.aspx页面中设置了
<form id="form1" ruant="server" action="Choice.aspx" method="post" >
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<input id="Submit1" type="submit" value="submit" onclick="return Submit1_onclick()" />
</form>
Default.aspx页面中的.cs 文件中我是这样些代码的:
protected void Page_Load(object sender, EventArgs e)
{
if(Request.Form["TextBox1"]!=null)
{
Response.Write(Request.Form["TextBox1"]);
}
}
但是当我把那个action="Choice"的时候,就出现了错误!
请问为什么?
错误的信息是:
验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。
------解决方案--------------------建议先搞清楚asp.net机制
<form id="form1" ruant="server" action="Choice.aspx" method="post" >
<asp:TextBox ID="TextBox1" runat="server"> </asp:TextBox>
<input id="Submit1" type="submit" value="submit" onclick="return Submit1_onclick()" />
</form>
=============
设置ruant="server" 以后,就不能设置action到其他页面了,因为默认是提交本页面。
如果去掉ruant="server" 属性,那么form里面的
服务器控件将也不能使用。
所以你可以尝试
C# code
ScriptManager.RegisterStartupScript(UpdatePanel_ICXGV, this.GetType(), "ChangePage", "<script language = 'javascript'>alert('出错')</script>", true);
------解决方案--------------------
这个是需要在web.config里设置
参考这个
http://hi.baidu.com/honghu3000/blog/item/605571c431b257ac8326ac2e.html