2015-06-09 64 views
0

我想重複使用Umbraco中的現有窗體(Contour未安裝)。我複製了以下文件:Umbraco - 無法加載類型'usercontrols_NewContactUs'

\我的站點\用戶控件\ COMMON \ ContactUsForm.ascx <%@控制語言= 「C#」 AutoEventWireup = 「真」 繼承= 「usercontrols_ContactUs」 代碼隱藏= 「ContactUsForm.ascx.cs」 %>

到: \我的站點\用戶控件\ COMMON \ NewContactUsForm.ascx <%@控制語言= 「C#」 AutoEventWireup = 「真」 繼承= 「usercontrols_NewContactUs」 Codebehind =「NewContactUsForm.ascx.cs」%>

來自: \我的站點\用戶控件\ COMMON \ ContactUsForm.ascx.cs 公共部分類usercontrols_ContactUs:System.Web.UI.UserControl {...}

到: \我的上門\用戶控件\ COMMON \ NewContactUsForm.ascx.cs 公共部分類usercontrols_NewContactUs:System.Web.UI.UserControl {...}

我創建了一個宏它指向NewForm,並添加宏一個新的頁面。

我沒有安裝Visual Studio - 在我的codeBehind類中是否會出現編譯錯誤?

錯誤細節如下:

宏創建並添加到形式給出了錯誤: 錯誤創建控制(用戶控件/普通/ NewContactUsForm.ascx)。 也許文件不存在或usercontrol有一個緩存指令,這是不允許的!查看tracestack獲取更多信息!


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)

回答

1

是啊,這是一個編譯問題。在編譯它之前,NewContactUsForm類不存在。在綁定中,您可以直接在NewContactUsForm.ascx中將代碼從NewContactUsForm.ascx.cs移動到C#腳本塊中,並完全移除codebehind =「...」並繼承=「...」參考。這樣你就不必編譯。

+0

那麼不應該在站點根/ bin文件夾中的原始ContactUsForm有一個DLL?/bin文件夾中沒有該名稱。 – user1491819

+0

不,該DLL以項目命名幷包含項目中的所有類。所有代碼隱藏的東西都被編譯成一個DLL。 –

+0

現在所有工作!對於需要知道的其他人,我需要將codeBehind類中的所有'uses'類語句放入Import語句中,然後將塊的內容包裝到 =塊中。 – user1491819

相關問題