Tag: viewstate

asp.net c#MVC:如何没有ViewState生活?

我正在考虑将WebForms转换为MVC: 在.net MVC中,什么概念使得ViewState不需要? 如果一个表单被发回iteself等(即回发)? page / usercontrol如何保持其状态? 人们为维护某种状态而采取什么样的手段而不诉诸会话状态? 当然,一个完全无国籍的环境是不存在的?

Base-64字符数组的长度无效

正如标题所说,我得到: Base-64字符数组的长度无效。 我已经读过关于这个问题在这里,似乎build议是存储ViewState在SQL中,如果它很大。 我正在使用一个有很多数据收集的向导,所以我的ViewSate很大。 但是,在谈到“数据库存储”解决scheme之前,也许有人可以看看,告诉我是否有其他select? 我使用下面的方法构build邮件发送: public void SendEmailAddressVerificationEmail(string userName, string to) { string msg = "Please click on the link below or paste it into a browser to verify your email account.<BR><BR>" + "<a href=\"" + _configuration.RootURL + "Accounts/VerifyEmail.aspx?a=" + userName.Encrypt("verify") + "\">" + _configuration.RootURL + "Accounts/VerifyEmail.aspx?a=" + userName.Encrypt("verify") + "</a>"; SendEmail(to, "", "", […]

在.NET应用程序中的不稳定无效的Viewstate问题

我好像在我的ASP.NET应用程序的事件查看器中不时出现“无效的viewstate”。 他们大多数(95%)似乎是引用ScriptResource.axd (应用程序使用ASP.NET AJAX库)。 我无法移除Ajax库,因为无处不在使用Ajax。 我怎样才能减less这些错误? 我每天发生100-200个错误,我不知道如何修复它们! 他们来自不同的浏览器,不同的IP地理位置。 我很难重现这个问题,因为它几乎没有发生在我身上,只有我突然间发生了3-4次。 错误: Process information: Process ID: 4004 Process name: w3wp.exe Account name: NT AUTHORITY\NETWORK SERVICE Exception information: Exception type: HttpException Exception message: Invalid viewstate. Request information: Request URL: http://domainnamehere/ScriptResource.axd?d=W1R6x9VzZ2C9SKnIkOmX9VRLhSjJ3nOF1GSQvPwKS3html Request path: /ScriptResource.axd User host address: 124.177.170.75 User: Is authenticated: False Authentication Type: Thread account name: NT AUTHORITY\NETWORK […]

我怎样才能更好地控制ASP.NET?

我正在尝试构build一个非常非常简单的“微型Web应用程序”,如果我完成了这个任务,那么我怀疑这个微型Web应用程序会对几个Stack Overflow's感兴趣。 我在我的C#深度网站,这是香草ASP.NET 3.5(即不是MVC)托pipe它。 stream程非常简单: 如果用户input的应用程序的URL没有指定所有参数(或者它们中的任何一个是无效的),我只想显示用户input控件。 (只有两个) 如果用户input具有所有必需参数的URL,我想显示结果和input控件(以便他们可以更改参数) 以下是我自己设定的要求(devise和实施的混合): 我希望提交使用GET而不是POST,所以用户可以很容易地为页面添加书签。 我不希望这个URL在提交之后变得愚蠢,并且无关紧要。 只是主要的url和真实的参数请。 理想情况下,我想避免需要JavaScript。 这个应用程序没有很好的理由。 我希望能够访问控制在渲染时间和设置值等。特别是,我想能够设置控件的默认值传递给参数值,如果ASP.NET无法自动执行此操作对我来说(在其他限制内)。 我很高兴自己做所有的参数validation,我不需要太多的服务器端事件。 设置页面加载的所有内容非常简单,而不是将事件附加到button等。 大多数这是好的,但我还没有find任何方式完全删除视图状态,并保持其他有用的function。 使用这篇博文中的文章,我已经设法避免获得视图状态的任何实际值 – 但它仍然作为URL的参数,看起来真的很丑。 如果我使它成为一个纯粹的HTML表单,而不是一个ASP.NET窗体(即拿出runat="server" ),那么我没有得到任何魔术viewstate – 但是我不能以编程方式访问控制。 我可以通过忽略大部分的ASP.NET,并用LINQ to XML构buildXML文档,并实现IHttpHandler 来做到这一切。 这感觉虽然有点低。 我意识到我的问题可以通过放宽我的约束(例如使用POST和不关心剩余参数)或使用ASP.NET MVC来解决,但是我的要求真的不合理吗? 也许ASP.NET只是不缩小到这种types的应用程序? 这里有一个非常可能的select:我只是愚蠢的,有一个非常简单的做法,我只是没有find。 任何想法,任何人? (提示如何强大的堕落等等,这很好 – 我希望我从来没有声称是一个ASP.NET专家,因为事实正好相反…)

是什么导致这个“Base-64字符数组长度无效”

我很less去这里。 我不能在本地重现这一点,但当用户得到错误,我得到一个自动的电子邮件exception通知: Invalid length for a Base-64 char array. at System.Convert.FromBase64String(String s) 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() 我倾向于认为分配给viewstate的数据存在问题。 例如: List<int> SelectedActionIDList = GetSelectedActionIDList(); ViewState["_SelectedActionIDList"] = SelectedActionIDList; 如果不能在本地重现错误,就很难猜出错误的来源。 如果有人有这个错误的经验,我真的想知道你发现了什么。

如何解码viewstate

我需要看到一个asp.net页面的视图状态的内容。 我查找了一个视图状态解码器,发现Fridz Onion的ViewState解码器,但它要求页面的URL来获取其视图状态。 由于我的viewstate是在回发之后形成的,并且是在更新面板中的一个操作的结果,所以我无法提供一个url。 我需要复制并粘贴viewstatestring,看看里面有什么。 有没有工具或网站可以帮助查看viewstate的内容?

渲染其他forms的Ajax导致其视图状态丢失,我该如何添加回来?

我有 <h:form> <h:commandLink action="#{my_fake_ajax_link}"> <h:outputText value="Link" /> <f:ajax render=":mydiv" /> </h:commandLink> </h:form> <h:panelGroup layout="block" id="mydiv"> <h:form> <h:commandLink action="#{mybean.delete(0)}"> <h:outputText value="Here" /> <f:ajax render="@form" /> </h:commandLink> </h:form> </h:panelGroup> 当我点击一次“my_fake_ajax_link”,那么我必须点击两次“删除”链接。 这只是一个例子。 我没有这个真实的案例。 我在一个页面上有多个表单,我不能只用一个表单添加所有的表单。 我检查了问题是什么,它是: 当你点击“my_fake_ajax_link”时, mydiv像使用ajax一样刷新。 ajax刷新表单的ViewState丢失。 我如何添加ViewState? 我怎样才能使它不工作,只使用一种forms? 这看起来像一个JSF错误给我。 我不想自动刷新该div jQuery("#mydiv").load(document.location.href); 但我会在最糟的情况下成为可能的。

com.sun.faces.numberOfViewsInSession vs com.sun.faces.numberOfLogicalViews

Mojarra JSF 2的实现具有以下背景参数: com.sun.faces.numberOfViewsInSession (默认值是15) com.sun.faces.numberOfLogicalViews (默认值是15) 他们有什么区别? 这些文档没有提到这些。 我的应用程序对于某些页面的ViewExpiredException有问题,但是当我们将这些设置碰到更高的值时,我们停止了一些问题。 我的应用程序是一个财务,forms沉重,启用Ajax的应用程序(一些屏幕有50多个input,可以通过AJAX添加更多的数据/input的选项)。 什么可能是这种行为的原因? 我明白,第一个参数定义了会话中保留的“页面”的数量,这对于后退button可能是有用的,但是触发ViewExpiredException用例不使用后退button。 第二个参数是指什么? 如果我留在同一个屏幕上,但通过AJAX不断添加大量数据,这是否会导致需要大量的页面逻辑视图?