c# - 访问添加到 DNN 模块的用户控件的资源文件的正确方法?

标签 c# webforms dotnetnuke resx

我正在使用 Christoc 模块模板,尝试创建一个包含本地化文本的模块。我在项目中添加了一个名为 TeamList.ascx 的新用户控件,并在 App_LocalResources 文件夹中添加了两个新文件:

TeamList.ascx.resxTeamList.ascx.fr-CA.resx(加拿大法语)。

我可以毫无问题地将用户控件包含在我的 View 中,但是当模块加载到页面上时,所有包含本地化文本的地方都是空白的。

已经尝试通过以下方式注册用户控件:

<moduleControl>
   <controlKey>Teams</controlKey>
   <controlSrc>
      DesktopModules/LTSC_DashboardModule/TeamList.ascx
   </controlSrc>
   <supportsPartialRendering>False</supportsPartialRendering>
   <controlTitle>Team Control</controlTitle>
   <controlType>View</controlType>
   <iconFile />
   <helpUrl />
   <viewOrder>0</viewOrder>
   <supportsPopUps>True</supportsPopUps>
</moduleControl>

...在 DNN list 文件中,但它没有任何作用。

我不确定我在这里遗漏了什么。我认为这可能很简单。

在此先感谢您的帮助。

最佳答案

访问资源文件是通过使用 DNN 中的本地化方法完成的。您需要发布您如何引用资源文件,以最终找出您做错了什么。

添加资源文件很简单,创建一个RESX文件来匹配你的ASCX文件

TeamList.ascx 会得到一个资源文件 App_LocalResources/称为 TeamList.ascx.resx 导致的路径 /app_localresources/teamlist.ascx.resx

要从后面的代码访问该路径,您只需调用

var stringValue = Localization.GetString("STRINGNAME.Text", LocalResourceFile)

其中 LocalResourceFile 是从 PortalModuleBase 继承的(你需要让你的 ASCX 文件继承我的模板创建的基类,它们是从 PMB 继承的,或者你可以直接从 PMB 继承。

可以类似地从 ASCX 文件中访问它

<%=Localization.GetString("STRINGNAME.Text", LocalResourceFile)%>

从内部控制与

<asp:label id="SOMEID" ResourceKey="STRINGNAME.Text" runat="server" />

唯一的其他潜在问题是,如果您将 ASCX 文件加载到另一个 ASCX 文件中,如果是这样,您需要将模块配置传递给代码隐藏中的子 ASCX 文件

我在 DNNSimpleArticle module 中执行此操作与

var mbl = (dnnsimplearticleModuleBase)LoadControl(controlToLoad);
mbl.ModuleConfiguration = ModuleConfiguration;
mbl.ID = System.IO.Path.GetFileNameWithoutExtension(controlToLoad);
phViewControl.Controls.Add(mbl);

这是否让您指明了正确的方向?

关于c# - 访问添加到 DNN 模块的用户控件的资源文件的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36751731/

相关文章:

javascript - DNN 8.00.02 - 获取当前模块 ID

c# - Web API 2 中的方法名称约定

C# 设置 ListBox 宽度,使最长的项目适合

c# - 在 Entity Framework 6 中的 BulkInsert 期间在上下文中找不到类型

javascript - 如何使用 jQuery/Javascript 迭代表单字段

asp.net - Ninject.Web.PageBase 仍然导致对注入(inject)依赖项的空引用

asp.net - 能否将 asp.net WebForm 控件转换为 HTML?

asp.net - 如何从 DNN 中的 .ascx Web 用户控件更新 ScriptManager?

DotNetNuke 6.1.3 中的 Javascript

c# - 如何从 C# 中的方法返回 VB6 Variant 类型的等效项