如何在WebForms .aspx页面中使用ASP.Net MVC View?

时间:2010-09-01 19:06:38

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

我有一个大型Web应用程序,我已将其设置为ASP.Net Web窗体和MVC。一些较新的页面是MVC(.mvc),一些是Web窗体(.aspx)。由于这是一个商业应用程序,并且不断添加功能,因此我很难有时间停止并替换现有功能以将其转换。所以我想一点一点地做,控制控制。

要做到这一点,我需要做的就是用

替换某些控件

<% Html.RenderPartial() %><% Html.HelperMethod %>

是否可以包含名称空间或从某些内容继承页面以允许使用这些方法,同时仍然为页面上的其他控件维护页面生命周期的其余部分?

1 个答案:

答案 0 :(得分:5)

我看到了这个问题,我记得我已经阅读了Scott Hanselman关于此的一些帖子,所以你走了:

还有两篇关于这个主题的文章:

我想总结一下你可以:

  • 并行ASP.NET MVC和ASP.NET WebForms,例如你可以在ASP.NET MVC中拥有新视图,而旧的视图将保留在WebForms中(如果它有效,为什么要重写它?) 。您“只是”需要弄清楚如何共享母版页。
  • 您可以在非Razor ASP.NET MVC视图中使用基本WebForms控件,但如果它们使用PostBacks或需要ViewState - 它们将无法工作,因为ASP.NET MVC视图中不存在完整的WebForms生命周期。
  • 关于WebForms内部的部分视图。您可以破解/强制ASP.NET MVC管道将路由/视图呈现给字符串并将其附加到WebForms页面。然而问题和问题是,如果您正在进行编辑,那么在POST期间您将松开模型绑定以及MVC模型验证是多么有用。一些用于呈现视图的代码 - How to include a partial view inside a webform。如果需要,您也可以使用ajax拉取局部视图。