我一直收到此错误
System.Web.HttpException was unhandled by user code
Message="Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster."
Source="System.Web"
ErrorCode=-2147467259
StackTrace:
at System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError)
at System.Web.UI.ViewStateException.ThrowMacValidationError(Exception inner, String persistedState)
at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)
at System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState)
at System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState)
at System.Web.UI.HiddenFieldPageStatePersister.Load()
at System.Web.UI.Page.LoadPageStateFromPersistenceMedium()
at System.Web.UI.Page.LoadAllState()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest()
at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
at System.Web.UI.Page.ProcessRequest(HttpContext context)
at System.Web.Mvc.ViewPage.RenderView(ViewContext viewContext)
at System.Web.Mvc.ViewUserControl.RenderViewAndRestoreContentType(ViewPage containerPage, ViewContext viewContext)
at System.Web.Mvc.ViewUserControl.RenderView(ViewContext viewContext)
at System.Web.Mvc.WebFormView.RenderViewUserControl(ViewContext context, ViewUserControl control)
at System.Web.Mvc.WebFormView.Render(ViewContext viewContext, TextWriter writer)
at System.Web.Mvc.HtmlHelper.RenderPartialInternal(String partialViewName, ViewDataDictionary viewData, Object model, ViewEngineCollection viewEngineCollection)
at System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper htmlHelper, String partialViewName)
at ASP.views_registration_freeedition_aspx.__Renderform1(HtmlTextWriter __w, Control parameterContainer) in i:\StudentPlannerV2\trunk\Current Site\Views\Registration\FreeEdition.aspx:line 23
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Control.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at ASP.views_shared_site_master.__Render__control1(HtmlTextWriter __w, Control parameterContainer) in i:\StudentPlannerV2\trunk\Current Site\Views\Shared\Site.Master:line 53
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Control.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Page.Render(HtmlTextWriter writer)
at System.Web.Mvc.ViewPage.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InnerException: System.Web.UI.ViewStateException
Message="Invalid viewstate. \r\n\tClient IP: 127.0.0.1\r\n\tPort: \r\n\tUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)\r\n\tViewState: /wEPDwUKLTE2OTc1MzQyNWRkiTBmkfYmU2SULSGTIy27NmZIwFs=\r\n\tReferer: http://localhost:3668/Registration/FreeEdition\r\n\tPath: /Registration/FreeEdition"
IsConnected=true
Path="/Registration/FreeEdition"
PersistedState="/wEPDwUKLTE2OTc1MzQyNWRkiTBmkfYmU2SULSGTIy27NmZIwFs="
Referer="http://localhost:3668/Registration/FreeEdition"
RemoteAddress="127.0.0.1"
RemotePort=""
UserAgent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)"
InnerException: System.Web.HttpException
Message="Unable to validate data."
Source="System.Web"
ErrorCode=-2147467259
StackTrace:
at System.Web.Configuration.MachineKeySection.GetDecodedData(Byte[] buf, Byte[] modifier, Int32 start, Int32 length, Int32& dataLength)
at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)
InnerException:
我认为我的部分观点是这样,我不知道为什么。
//以下是部分视图
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<%= Html.Label("UserName","UserName") %>
<%= Html.TextBox("UserName") %>
<%= Html.ValidationMessage("UserName") %>
<br />
<%= Html.Label("Password","Password") %>
<%= Html.Password("Password")%>
<%= Html.ValidationMessage("Password")%>
<br />
<%= Html.Label("ConfirmPassword", "Confirm Password")%>
<%= Html.Password("ConfirmPassword")%>
<%= Html.ValidationMessage("ConfirmPassword")%>
<br />
<%= Html.Label("Email","Email") %>
<%= Html.TextBox("Email") %>
<%= Html.ValidationMessage("Email")%>
<br />
<%= Html.Label("ConfirmEmail","Confirm Email") %>
<%= Html.TextBox("ConfirmEmail")%>
<%= Html.ValidationMessage("ConfirmEmail")%>
<br />
// follow位于其中一个母版页内容占位符的.aspx页面中
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<form id="form1" runat="server">
<% using ())
{ %>
<%= Html.ValidationSummary()%>
<% Html.RenderPartial("CoreRegistration"); %>
<%= Html.SubmitButton("CreateAccount", "Create Account")%>
<% } %>
</form>
点击创建帐户会导致我收到错误。
答案 0 :(得分:5)
ASP.NET MVC不支持服务器端表单(特别是,这个):
<form id="form1" runat="server">
使用Html.BeginForm()在MVC中打开一个新表单。
答案 1 :(得分:2)
ViewState不是asp.net mvc的一部分。如果您使用的是依赖于ViewState的常规ASP.Net webcontrol,它们将不起作用。
我建议使用
<% using (Html.BeginForm()) {%>
而不是您当前的表单标签。