日期:2014-05-18  浏览次数:20424 次

vs中的错误,求高手解答
我新建一个登陆页面:login.aspx, 代码如下,
<%@ 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></title>
</head>
<body>
  <form id="form1" runat="server" action="index.aspx">
  <div>
  <table>
  <tr><td>用户名:</td><td>
  <asp:TextBox ID="user" runat="server"></asp:TextBox>
  </td></tr>
  <tr><td>密码:</td><td>
  <asp:TextBox ID="ps" runat="server" TextMode="Password"></asp:TextBox>
  </td></tr>
  <tr><td></td><td>
  <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
  x</td></tr>
  </table>
</div>
  </form>
</body>
</html>

单击提交后:
index.asps.cs的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class index : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
  Response.Write("你的用户名是"+Request["user"]+",你的密码是"+Request["ps"]);
  }
}

之后页面现面bug 
“/webobject”应用程序中的服务器错误。
--------------------------------------------

验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Web.HttpException: 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。

源错误: 

只有在调试模式下进行编译时,生成此未处理异常的源代码才会显示出来。若要启用此功能,请执行以下步骤之一,然后请求 URL: 

1. 在产生错误的文件的顶部添加一条“Debug=true”指令。例如: 

  <%@ Page Language="C#" Debug="true" %>

或:

2. 将以下的节添加到应用程序的配置文件中:

<configuration>
  <system.web>
  <compilation debug="true"/>
  </system.web>
</configuration>

请注意,第二个步骤将使给定应用程序中的所有文件在调试模式下进行编译;第一个步骤仅使该特定文件在调试模式下进行编译。

重要事项: 以调试模式运行应用程序一定会产生内存/性能系统开销。在部署到生产方案之前,应确保应用程序调试已禁用。  

这是什么原因咯,帮忙解决下

------解决方案--------------------
你的提交方式有问题,你不能把作为服务器控件的Form提交到别的页面,它默认是提交到自身的,如果你非要提交到别的页面就另写一个不是服务器控件的表单,注意两个表单不能嵌套奥,顺便说一句你的程序怪怪的,既不像WebForm也不像Mvc哈哈
------解决方案--------------------
<form id="form1" runat="server" action="index.aspx">
去掉runat="server" 就可以了,而且一个页面可以写多个form和写asp一样了,这种写法太差了,cms可能会用到