如何检测asp.net webforms页面?

时间:2012-08-07 11:48:50

标签: asp.net-mvc webforms

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

谢谢!

2 个答案:

答案 0 :(得分:1)

来源:ASP.NET MVC and Web Forms Integration

  

IIS需要能够确定给定的请求是否是一个   ASP.NET MVC或Web窗体请求。一旦它能搞清楚,IIS   可以将请求发送到适当的处理程序和应用程序   表现得像你期望的那样。

从那篇好文章中查看这些内容。

  

注意

     

注意ViewState!虽然ASP.NET Framework的很多部分   可以通过Web窗体和ASP.NET MVC访问,这是最重要的   ASP.NET MVC中不支持的Web窗体框架   完全是ViewState。大多数情况下,ViewState用于Web窗体   页面与自身进行通信,因此遇到了机会   在Web窗体页面和。之间交叉发布时ViewState问题   ASP.NET MVC控制器很小。

     

但是,在将Web窗体应用程序转换为ASP.NET MVC时,   请注意Web窗体应用程序中的任何代码   期望ViewState - 期间ViewState数据不存在   ASP.NET MVC请求的过程因此依赖于它的代码   可能会破裂!

答案 1 :(得分:0)

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

虽然,因为ViewState只是一个名为/ id“__VIEWSTATE”的常规隐藏输入元素,所以有人添加了一个具有该名称和id的非元素(在非ASP.NET页面中) :

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"
  value="contents go here" />