添加.ascx控件后MVC项目错误

时间:2011-05-06 18:19:26

标签: asp.net-mvc-3 razor ascx

我尝试将.ascx用户控件添加到我的EditorTemplates中,但这样做会导致在我的MVC 3项目中弹出一百个错误。每个对“System。”错误的引用都是“未定义”,编译器希望我将它们更新为“Global.System。

有谁可以告诉我为什么添加用户控件会这样做?

谢谢

更新:

如果我拿出自动创建的代码隐藏文件(我认为我不需要),那么问题似乎就解决了。很有意思......

1 个答案:

答案 0 :(得分:1)

用户控件(带有runat="server"的东西)不应该在ASP.NET MVC应用程序中使用。它们通常依赖于Postbacks和ViewState,它们是ASP.NET MVC中不再存在的概念。您可以使用ascx部分/编辑器模板并从Razor视图调用它。例如,假设你有以下部分:

<%@ Control 
    Language="C#" 
    Inherits="System.Web.Mvc.ViewUserControl<AppName.SomeViewModel>" %>

<%= Html.LabelFor(x => x.Foo) %>
<%= Html.TextBoxFor(x => x.Foo) %>

您可以从Razor视图中包含它,如下所示:

@Html.Partial("NameOfThePartial")