0

如果页面在源中包含 Viewstate。这是否意味着该网页正在使用 ASP.NET WebForms 或者这也可能是一个 MVC 项目?

谢谢!

4

2 回答 2

1

来源:ASP.NET MVC 和 Web 窗体集成

IIS 需要能够确定给定请求是 ASP.NET MVC 还是 Web 窗体请求。一旦它弄清楚这一点,IIS 就可以将请求发送到适当的处理程序,并且应用程序的行为与您预期的一样。

从那篇好文章中检查这些行。

警告

注意 ViewState!尽管 Web 窗体和 ASP.NET MVC 都可以访问 ASP.NET 框架的许多部分,但 ASP.NET MVC 根本不支持的 Web 窗体框架中最重要的部分是 ViewState。大多数情况下,ViewState 用于 Web 窗体页面与自身通信,因此在 Web 窗体页面和 ASP.NET MVC 控制器之间交叉发布时遇到 ViewState 问题的可能性很小。

但是,在将 Web 窗体应用程序转换到 ASP.NET MVC 时,请注意 Web 窗体应用程序中需要 ViewState 的任何代码——在 ASP.NET MVC 请求过程中,ViewState 数据将不存在,因此取决于就它可能会破裂!

于 2012-08-07T11:57:03.677 回答
0

MVC 中没有 ViewState。因此,如果您找到一个ViewState元素,就可以确定它是一个 ASP.NET WebForms 页面。

虽然,由于 ViewState 只是一个名称/id 为“__VIEWSTATE”的常规隐藏输入元素,但是有一个很小的机会,有人添加了这样一个具有该名称和 id 的元素(在非 ASP.NET 页面中):

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"
  value="contents go here" />
于 2012-08-07T11:53:46.273 回答