You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法将2sxc应用注入DNN皮肤文件:错误BC30451‘this未声明’

DNN 9.11.0 + 2sxc 14.11.0:皮肤文件调用IRenderService报BC30451错误的解决方案

错误含义

BC30451是ASP.NET WebForms编译错误,具体原因是:DNN皮肤文件(.ascx)的上下文对象(this代表的Skin实例)并没有公开GetScopedService方法,编译器无法找到该成员,或者该成员的访问级别限制了外部调用。

是否缺少引用

不是。你已添加必要的2sxc及依赖注入命名空间,问题核心是调用上下文对象的方式错误,而非引用缺失。

解决方法

方法1:通过HttpContext获取服务容器

替换原有代码为:

<%= HttpContext.Current.RequestServices.GetRequiredService<ToSic.Sxc.Services.IRenderService>().Module(8196, 21481) %>

确保已添加Microsoft.Extensions.DependencyInjection命名空间(用于调用GetRequiredService方法)。

方法2:使用DNN官方依赖注入解析器

如果HttpContext.Current在特定场景下不可用,改用DNN自带的服务定位器:

<%= DotNetNuke.DependencyInjection.DnnDependencyResolver.Current.GetService<ToSic.Sxc.Services.IRenderService>().Module(8196, 21481) %>

该方式适配DNN 9+的依赖注入体系,与2sxc服务完全兼容。

额外检查项

  • 确认模块ID(8196)和内容ID(21481)正确,且目标模块在当前门户下具备访问权限。
  • 验证2sxc模块已完整安装、配置,无损坏组件。

内容的提问来源于stack exchange,提问作者Zachary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 11:02:22