我正在构建一个新的ASP.NET MVC 3应用程序。在这个应用程序中,我想在我的新MVC剃刀应用程序的覆盖图中显示一个旧的WebForms用户控件(.ascx / .ascx.cs)作为局部视图。我无法在网上找到任何关于这样做的事情。任何人都可以告诉我这是否可行,如果有的话,请指点我一些文件?感谢。
答案 0 :(得分:4)
做这样的事情是非常糟糕的做法。但是,这可以通过以下代码实现:
@Html.Partial("_Foo")
然后在_Foo
部分视图中,您可以拥有以下内容:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %>
<%@ Register Assembly="SomeAssembly" Namespace="SomeNs" TagName="foo" %>
<foo:SomeControl runat="server" ID="fooControl" />
希望这会有所帮助。看看这个问题:
答案 1 :(得分:3)
长答案涉及'是的,你可以,但......'
简短的回答是,你不应该。
在不知道.ascx文件的细节的情况下,您可以使用
渲染部分内容@Html.Partial(PageName)
但是,如果您有任何服务器控件,它们将无法工作。 MVC不支持相同类型的回调控制状态功能。所以,你正在使用任何类似的东西
<asp:Button runat=server />
然后你最好不要重新考虑你的部分。
答案 2 :(得分:1)