如何在MVC 3中将WebForms .ascx显示为局部视图

我正在构建一个新的ASP.NET MVC 3应用程序。 在这个应用程序中,我想在我的新MVC剃刀应用程序的覆盖图中显示一个旧的WebForms用户控件(.ascx / .ascx.cs)作为局部视图。 我无法在网上找到任何关于这样做的事情。 任何人都可以告诉我这是否可行,如果有的话,请指点我一些文件? 谢谢。

做这样的事情是非常糟糕的做法。 但是,这可以通过以下代码实现:

@Html.Partial("_Foo") 

然后在_Foo局部视图中,您可以拥有以下内容:

 <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> <%@ Register Assembly="SomeAssembly" Namespace="SomeNs" TagName="foo" %>  

希望这可以帮助。 看看这个问题:

  • MVC 3:将用户控件添加到Razor视图

长期答案涉及“是的,你可以,但……”

简短的回答是,你不应该。

在不知道.ascx文件的细节的情况下,您可以渲染部分使用

 @Html.Partial(PageName) 

但是,如果您有任何服务器控件,它们将无法工作。 MVC不支持相同类型的回调控制状态function。 所以,你正在使用任何类似的东西

  

然后你最好重新考虑你的部分。

我正在做类似的事情。 我发现这些链接可能对您有所帮助。

http://www.codemag.com/article/1009061

如何在MVC4中呈现远程ReportViewer aspx页面?

如何在asp.net mvc 3 razor视图中使用reportviewer控件?