【问题标题】:ViewState in the ASP.NET, does it really go away?ASP.NET 中的 ViewState,真的会消失吗?
【发布时间】:2013-06-22 18:01:18
【问题描述】:

我已经阅读了不同的主题、教程等...到处都有ASP.NET MVC 具有不使用/包含ViewState 内容的优势的信息。

真的吗?

那么...怎么可能(看截图)?

http://s18.postimg.org/rvgm2ypjt/Screenshot_568.png

正如您在屏幕上看到的,它不是 WebForms 项目。

我刚刚在View中添加了下一个代码:

http://ideone.com/iPkmdO

为什么我的ASP.NET MVC 项目中有Viewstate

【问题讨论】:

  • 这很奇怪。您使用哪个模板创建 MVC 应用程序?
  • @UfukHacıoğulları 你所说的template 是什么意思? ASP.NET MVC 的版本?这是第二个版本(ASP.NET MVC 2)。如果您想知道,我如何创建项目?简单...只要选择New ASP.NET MVC 2 application with tests(如果解决方案资源管理器就可以看到)。
  • 在创建项目之前有一个template dialog
  • @UfukHacıoğulları 在我为 Visual Studio 2010 安装 ASP.NET MVC 4 之前 - 我没有你展示过的这样的对话。只有在我安装了一个新的安装包,将 MVC 4 添加到我的 VS 之后,才会出现这样的对话框。

标签: c# asp.net-mvc webforms viewstate


【解决方案1】:
<form class="form-horizontal" id="MainForm" runat="server">

如果您使用的是runat="server",那么您正在调用网络表单;不要那样做。这是 MVC - 你不需要它。只需将其更改为:

<form class="form-horizontal" id="MainForm">

【讨论】:

    【解决方案2】:

    这是因为你在 MVC 项目中使用的是 aspx 页面。 (在屏幕截图中我可以看到 ViewMaps.aspx)

    Aspx 页面是网络表单。网络表单具有视图状态。

    如果使用正确的控制器和视图,您将看不到任何视图状态。仅仅因为项目是 MVC 并不意味着 viewstate 不会出现在 aspx 页面上。

    另外,人们通常不会在 MVC 项目中使用 aspx 页面。

    【讨论】:

    • 等等...但是我刚刚创建了带有测试的新 ASP.NET MVC 2 应用程序,我扩展了这个项目的其他页面,看这里:s11.postimg.org/wf5zocodf/image.png,我什至没有创建他们!当 Visual Studio 创建新项目时,它们是自动构建的。
    • 嗯..这很奇怪。这是一个完全不同的问题。希望现在您确信 MVC 没有视图状态。
    • 我从来没有使用过 MVC 2。奇怪的是 MVC 2 有这样的模板来创建 aspx 页面。
    • @GeloVolro 您是否尝试过使用不同的模板。 Visual Studio 2010/2012 将为您提供可能对您有用的默认模板。
    • 我有点不同意这个答案; aspx 最初被用作 MVC 中的 视图引擎;这并不意味着它是网络表单。简单地说,MVC 重用了现有的引擎来渲染视图。虽然 razor 可能更整洁,但 aspx 本身的存在并不表示“webforms”,也不应暗示视图状态
    猜你喜欢
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 2010-11-24
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-24
    相关资源
    最近更新 更多