Umbraco - 无法加载类型 'usercontrols_NewContactUs'

Umbraco - Could not load type 'usercontrols_NewContactUs'

我正在尝试复制 Umbraco 中的现有表单(未安装 Contour)。我复制了以下文件:

来自: \my-site\usercontrols\Common\ContactUsForm.ascx <%@ Control Language="C#" AutoEventWireup="true" Inherits="usercontrols_ContactUs" Codebehind="ContactUsForm.ascx.cs" %>

至: \my-site\usercontrols\Common\NewContactUsForm.ascx <%@ Control Language="C#" AutoEventWireup="true" Inherits="usercontrols_NewContactUs" Codebehind="NewContactUsForm.ascx.cs" %>

来自: \my-site\usercontrols\Common\ContactUsForm.ascx.cs public 部分 class usercontrols_ContactUs : System.Web.UI.UserControl {...}

至: \my-site\usercontrols\Common\NewContactUsForm.ascx.cs public 部分 class usercontrols_NewContactUs : System.Web.UI.UserControl {...}

我创建了一个指向 NewForm 的宏,并将该宏添加到新页面。

我没有安装 Visual Studio - 我的 codeBehind class 中是否存在编译错误?

错误详情如下:

创建并添加到表单的宏出现错误: 创建控件时出错 (usercontrols/Common/NewContactUsForm.ascx)。 可能文件不存在或用户控件有缓存指令,这是不允许的!有关详细信息,请参阅跟踪堆栈!


Error reading usercontrols/Common/NewContactUsForm.ascx The following list shows the Public Properties from the Control. By checking the Properties and click the "Save Properties" button at the bottom, umbraco will create the corresponding Macro Elements.

System.Web.HttpParseException (0x80004005): Could not load type 'usercontrols_NewContactUs'. ---> System.Web.HttpParseException (0x80004005): Could not load type 'usercontrols_NewContactUs'. ---> System.Web.HttpException (0x80004005): Could not load type 'usercontrols_NewContactUs'. at System.Web.UI.TemplateParser.GetType(String typeName, Boolean ignoreCase, Boolean throwOnError) at System.Web.UI.TemplateParser.ProcessInheritsAttribute(String baseTypeName, String codeFileBaseTypeName, String src, Assembly assembly) at System.Web.UI.TemplateParser.PostProcessMainDirectiveAttributes(IDictionary parseData) at System.Web.UI.TemplateParser.ProcessException(Exception ex) at System.Web.UI.TemplateParser.ParseStringInternal(String text, Encoding fileEncoding) at System.Web.UI.TemplateParser.ParseString(String text, VirtualPath virtualPath, Encoding fileEncoding) at System.Web.UI.TemplateParser.ParseString(String text, VirtualPath virtualPath, Encoding fileEncoding) at System.Web.UI.TemplateParser.ParseFile(String physicalPath, VirtualPath virtualPath) at System.Web.UI.TemplateParser.ParseInternal() at System.Web.UI.TemplateParser.Parse() at System.Web.Compilation.BaseTemplateBuildProvider.get_CodeCompilerType() at System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider) at System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders() at System.Web.Compilation.BuildProvidersCompiler.PerformBuild() at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) at System.Web.UI.TemplateControl.LoadControl(VirtualPath virtualPath) at umbraco.developer.assemblyBrowser.Page_Load(Object sender, EventArgs e)

是的,这是一个编译问题。 class NewContactUsForm 在您编译之前不存在。在绑定中,您可以将代码从 NewContactUsForm.ascx.cs 直接移到 NewContactUsForm.ascx 上的 C# 脚本块中,并完全删除 codebehind="..." 和 inherits="..." 引用。这样你就不必编译了。