【发布时间】:2022-10-05 03:59:44
【问题描述】:
我想在 2sxc 模块中使用新版本的剃须刀页面编写自定义视图。我的视图“_MyView.cshtml”继承Custom.Dnn.Razor12。所以我创建了一个以@inherits Custom.Dnn.Code12 开头的文件“_MyView.code.cshtml”(也尝试过@inherits ToSic.Sxc.Dnn.RazorComponent,但没有帮助)。
所以当我试图在“_MyView.cshtml”中调用这样的东西时:
@{
Code.MyMethod();
}
它给了我错误:
错误:System.Web.HttpCompileException (0x80004005):d:\Projects\mywebsite.com.ua\Host\Portals\2\2sxc\MyApp_MyView.cshtml(5):错误 CS0103:名称“代码”不存在于当前上下文在 System.Web.Compilation.AssemblyBuilder.Compile() 在 System.Web.Compilation.BuildProvidersCompiler.PerformBuild() 在 System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) 在 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 ) 在 System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFo und) 在 System.Web.Compilation.BuildManager.GetCompiledType(VirtualPath virtualPath) at ToSic.Sxc.Engines.RazorEngine.CreateWebPageInstance() 在 C:\Projects\2sxc\2sxc\Src\Dnn\ToSic.Sxc.Dnn.Razor\ Engines\Razor\RazorEngine.cs:C:\Projects\2sxc\2sxc\Src\Dnn\ToSic.Sxc.Dnn.Razor\Engines\Razor\RazorEngine 中 ToSic.Sxc.Engines.RazorEngine.InitWebpage() 的第 146 行。 c:\Projects\2sxc\2sxc\Src\Dnn\ToSic.Sxc.Dnn.Razor\Engines\Razor\RazorEngine.cs:ToSic.Sxc.Engines.RazorEngine.Init() 的第 155 行:ToSic 的第 80 行C:\Projects\2sxc\2sxc\Src\Sxc\ToSic.Sxc\Engines\EngineBase.cs 中的 .Sxc.Engines.EngineBase.Init(IBlock 块):ToSic.Sxc.Blocks.BlockBuilder.GetEngine() 的第 77 行在 C:\Projects\2sxc\2sxc\Src\Sxc\ToSic.Sxc\Blocks\BlockBuilder_Render.cs:C:\Projects\2sxc\2sxc\ 中 ToSic.Sxc.Dnn.Web.DnnClientResources.NeedsPre1025Behavior() 的第 227 行Src\Dnn\ToSic.Sxc.Dnn.Core\Dnn\Web\DnnClientResources.cs:ToSic.Sxc.Dnn.View 的第 95 行。<>c__DisplayClass13_0.<Page_Load>b__1() 在 C:\Projects\2sxc\2sxc \Src\Dnn\ ToSic.Sxc.Dnn\View.ascx.cs:C:\Projects\2sxc\2sxc\Src\Dnn\ToSic.Sxc.Dnn 中 ToSic.Sxc.Dnn.View.TryCatchAndLogToDnn(Action action, LogCall timerWrap) 的第 82 行\View.ascx.Errors.cs:第 22 行 - 上下文:第 126 页;模块:1724
我知道如果我继续使用旧课程,它现在可能可以工作,但以后可能会停止工作。那么我该如何使用这个呢?
我试图查看 2sxc 文档和 github 代码,但没有找到一个示例。
那么我做错了什么?我该如何使用它?
【问题讨论】:
标签: dotnetnuke 2sxc