我开发了一个我想要嵌入Umbraco的用户控件。这个过程看起来很简单,但我可能会尝试一些无法做到的事情。
我的usercontrol依赖于其他几个用户控件。当我尝试在“主”用户控件中浏览属性时,我得到以下错误。
我已将所有.ascx文件复制到usercontrols文件夹,并且程序集位于bin目录中。是否可以在Umbraco中托管一个依赖于并包含其他用户控件的“复合”用户控件?
System.Web.HttpParseException:文件'/ucLogin.ascx'不存在。 ---> System.Web.HttpParseException:文件'/ucLogin.ascx'不存在。 ---> System.Web.HttpException:文件'/ucLogin.ascx'不存在。 System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context)上的System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath,Boolean noBuild,Boolean allowCrossApp,Boolean allowBuildInPrecompile)中的System.Web.UI.Util.CheckVirtualFileExists(VirtualPath virtualPath) ,System.Web.UI.BaseTemplateParser.GetReferencedType(System.Web.UI.BaseTemplateParser.GetReferencedType)上的System.Web.Compilation.BuildManager.GetVPathBuildResult(HttpContext context,VirtualPath virtualPath,Boolean noBuild,Boolean allowCrossApp,Boolean allowBuildInPrecompile)中的VirtualPath virtualPath,Boolean noBuild,Boolean allowCrossApp,Boolean allowBuildInPrecompile)位于System.Web.UI.UI.BinTemplateParser.ProcessDirective(String directiveName,IDictionary指令)的System.Web.UI.MainTagNameToTypeMapper.ProcessUserControlRegistration(UserControlRegisterEntry ucRegisterEntry)上的System.Web.UI.BaseTemplateParser.GetUserControlType(VirtualPath virtualPath)中的VirtualPath virtualPath,Boolean allowNoCompile)在Sy System.Web.UI.TemplateParser.ParseStringInternal(String text,Encoding fileEncoding)---内部异常堆栈跟踪结束---在System.Web上的stem.Web.UI.TemplateControlParser.ProcessDirective(String directiveName,IDictionary指令)。 System.Web.UI.TemplateParser.ParseString(String text,VirtualPath virtualPath,Encoding fileEncoding)上的System.Web.UI.TemplateParser.ParseStringInternal(String text,Encoding fileEncoding)中的UI.TemplateParser.ProcessException(Exception ex)---结束内部异常堆栈跟踪---位于System.Web上的System.Web.UI.TemplateParser.ParseReader(StreamReader reader,VirtualPath virtualPath)的System.Web.UI.TemplateParser.ParseString(String text,VirtualPath virtualPath,Encoding fileEncoding)。 System.Web.UI.TemplateParser.Parse上的System.Web.UI.TemplateParser.Parse()处的System.Web.UI.TemplateParser.ParseInternal()处的UI.TemplateParser.ParseFile(String physicalPath,VirtualPath virtualPath)(ICollection referencedAssemblies, Sys上的VirtualPath virtualPath)位于System.Web.Compilation.Build上的System.Web.Compilation.Compilation.BuildProvidersCompiler.ProcessBuildProviders()处的System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider)中的tem.Web.Compilation.BaseTemplateBuildProvider.get_CodeCompilerType(),以及System.Web.Compilation.BuildProvidersCompiler.PerformBuild()at在System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context,System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath,Boolean noBuild,Boolean allowCrossApp,Boolean allowBuildInPrecompile)中的System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) System.Web.UI.TemplateControl.LoadControl(VirtualPath)上的System.Web.Compilation.BuildManager.GetVPathBuildResult(HttpContext上下文,VirtualPath virtualPath,Boolean noBuild,Boolean allowCrossApp,Boolean allowBuildInPrecompile)中的VirtualPath virtualPath,Boolean noBuild,Boolean allowCrossApp,Boolean allowBuildInPrecompile) System.Web上的virtualPath) umbraco.developer.assemblyBrowser.Page_Load(Object sender,EventArgs e)中的.UI.TemplateControl.LoadControl(String virtualPath)
答案 0 :(得分:2)
usercontrol通过rootpath引用其他控件。你能否将引用/ucLogin.ascx更改为ucLogin.ascx,看看会发生什么。
希望它可以帮到你,
理查德