我尝试将.ascx用户控件添加到我的EditorTemplates中,但这样做会导致在我的MVC 3项目中弹出一百个错误。每个对“System。”错误的引用都是“未定义”,编译器希望我将它们更新为“Global.System。”
有谁可以告诉我为什么添加用户控件会这样做?
谢谢
更新:
如果我拿出自动创建的代码隐藏文件(我认为我不需要),那么问题似乎就解决了。很有意思......
答案 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")