Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为添加到DNN模块的用户控件访问资源文件的正确方式?_C#_Webforms_Dotnetnuke_Resx - Fatal编程技术网

C# 为添加到DNN模块的用户控件访问资源文件的正确方式?

C# 为添加到DNN模块的用户控件访问资源文件的正确方式?,c#,webforms,dotnetnuke,resx,C#,Webforms,Dotnetnuke,Resx,我正在使用Christoc模块模板,试图创建一个带有本地化文本的模块。我在项目中添加了一个名为TeamList.ascx的新用户控件,并在App\u LocalResources文件夹中添加了两个新文件: TeamList.ascx.resx和TeamList.ascx.fr-CA.resx(加拿大法语) 我可以在视图中包含用户控件,但当模块加载到页面上时,包含本地化文本的所有位置都是空白的 我已尝试通过以下方式注册用户控件: <moduleControl> <contr

我正在使用Christoc模块模板,试图创建一个带有本地化文本的模块。我在项目中添加了一个名为TeamList.ascx的新用户控件,并在App\u LocalResources文件夹中添加了两个新文件:

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

我可以在视图中包含用户控件,但当模块加载到页面上时,包含本地化文本的所有位置都是空白的

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

<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>

团队
DesktopModules/LTSC_仪表板模块/TeamList.ascx
假的
团队控制
看法
0
真的
…在DNN清单文件中,但它无效

我不确定我错过了什么。我想这可能很简单


提前感谢您的帮助。

使用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)%>

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

您是在尝试访问资源文件,还是尝试在页面上加载ASCX文件?是的,将ASCX文件传递给另一个ASCX文件正是我所做的。非常感谢!
<asp:label id="SOMEID" ResourceKey="STRINGNAME.Text" runat="server" />
var mbl = (dnnsimplearticleModuleBase)LoadControl(controlToLoad);
mbl.ModuleConfiguration = ModuleConfiguration;
mbl.ID = System.IO.Path.GetFileNameWithoutExtension(controlToLoad);
phViewControl.Controls.Add(mbl);