【问题标题】:Why is there viewstate on my MVC 2.0 page?为什么我的 MVC 2.0 页面上有视图状态?
【发布时间】:2011-03-12 23:38:12
【问题描述】:

对不起,如果这是一个愚蠢的问题,但我认为 MVC 的全部内容是没有视图状态(或选择没有视图状态),但是当我创建我的页面时,我有这个:

<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNDMyNDU0NjAzZGRjlqkQNPIdYgfiR4aOw7np3SRI0LRCffrTkaOLWtatvA==" />

如何摆脱它?

【问题讨论】:

  • 这是一个干净的项目吗?当项目中包含不是为 ASP.NET MVC 编写的第 3 方组件时,我听说过这一点。
  • 编辑您的问题以包含您正在使用的视图的内容。

标签: asp.net asp.net-mvc asp.net-mvc-2 viewstate


【解决方案1】:

在所有页面(主页面、视图、控件...)中搜索任何runat="server" 标记并将其删除(尤其是&lt;form runat="server"&gt; 之类的标记)。这些属性不应再出现在 ASP.NET MVC 应用程序中。

【讨论】:

  • 这不是 100% 正确的。 WebForms 视图引擎(他正在使用 MVC2)仍然使用 runat="server" 作为部分(asp:content)
  • @Linkgoron,你是对的,非常好的观点。事实上,那些不应该被删除。
  • Darin,我的表单中有一个 runat 标签。我删除了它并解决了问题。我在页面中的用户控件也有 runat 标记,但这不会导致任何视图状态。
猜你喜欢
  • 1970-01-01
  • 2012-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-12
相关资源
最近更新 更多