我正在尝试复制Umbraco中的现有表单(未安装Contour)。我复制了以下文件:
发件人: \我的站点\用户控件\ COMMON \ ContactUsForm.ascx <%@ Control Language =" C#" AutoEventWireup ="真"继承=" usercontrols_ContactUs"代码隐藏=" ContactUsForm.ascx.cs" %GT;
以 \我的站点\用户控件\ COMMON \ NewContactUsForm.ascx <%@ Control Language =" C#" AutoEventWireup ="真"继承=" usercontrols_NewContactUs"代码隐藏=" NewContactUsForm.ascx.cs" %GT;
发件人: \我的站点\用户控件\ COMMON \ ContactUsForm.ascx.cs public partial class usercontrols_ContactUs:System.Web.UI.UserControl {...}
以 \我的站点\用户控件\ COMMON \ NewContactUsForm.ascx.cs public partial class usercontrols_NewContactUs:System.Web.UI.UserControl {...}
我创建了一个指向NewForm的宏,并将宏添加到新页面。
我没有安装Visual Studio - 我的codeBehind类中是否存在编译错误?
错误详情如下:
创建宏并将其添加到表单中会出错: 创建控件时出错(usercontrols / Common / NewContactUsForm.ascx)。 也许文件不存在或者usercontrol有一个缓存指令,这是不允许的!有关详细信息,请参阅tracestack!
读取usercontrols / Common / NewContactUsForm.ascx时出错以下内容 列表显示Control中的公共属性。通过检查 单击属性,然后单击"保存属性"底部的按钮, umbraco将创建相应的宏元素。
System.Web.HttpParseException(0x80004005):无法加载类型 ' usercontrols_NewContactUs&#39 ;. ---> System.Web.HttpParseException (0x80004005):无法加载类型' usercontrols_NewContactUs'。 ---> System.Web.HttpException(0x80004005):无法加载类型 ' usercontrols_NewContactUs&#39 ;.在 System.Web.UI.TemplateParser.GetType(String typeName,Boolean ignoreCase,Boolean throwOnError)at System.Web.UI.TemplateParser.ProcessInheritsAttribute(字符串 baseTypeName,String codeFileBaseTypeName,String src,Assembly 汇编) System.Web.UI.TemplateParser.PostProcessMainDirectiveAttributes(IDictionary的 parseData)at System.Web.UI.TemplateParser.ProcessException(Exception ex)在System.Web.UI.TemplateParser.ParseStringInternal(String text, 编码fileEncoding) System.Web.UI.TemplateParser.ParseString(String text,VirtualPath virtualPath,编码fileEncoding) System.Web.UI.TemplateParser.ParseString(String text,VirtualPath virtualPath,编码fileEncoding) 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() 在 System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider)at System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders() 在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 保证在最近的时候 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)
答案 0 :(得分:1)
是的,这是一个编译问题。在编译之前,类NewContactUsForm不存在。在绑定中,您可以直接在NewContactUsForm.ascx上将代码从NewContactUsForm.ascx.cs移动到C#脚本块中,并删除codebehind =“...”并完全继承=“...”引用。这样你就不用编译了。