.NET Core 6 MVC 本地化问题:SharedResource 未找到排查
检查SharedResource类的命名空间与资源文件命名匹配
如果SharedResource类位于你的项目名.Model命名空间下,Resources文件夹中的资源文件需命名为你的项目名.Model.SharedResource.en-US.resx和你的项目名.Model.SharedResource.fa-IR.resx。.NET Core本地化默认按类的完全限定名匹配资源文件,直接命名为SharedResource.en-US.resx会导致无法匹配到Model文件夹下的类。确认资源文件的生成操作设置
右键资源文件→属性,确保生成操作设置为嵌入的资源,自定义工具留空(.NET Core不需要生成资源代码类)。若生成操作错误,资源文件不会被嵌入程序集,本地化组件无法读取。验证本地化服务的资源路径配置
在ConfigureServices中配置AddLocalization时,需指定资源文件所在文件夹路径,确保与实际文件夹名一致(注意大小写,跨平台环境敏感):services.AddLocalization(options => options.ResourcesPath = "Resources");确保SharedResource类为public访问修饰符
SharedResource类必须是public的,否则IHtmlLocalizer无法访问该类型进行资源查找,示例代码:namespace YourProjectName.Model { public class SharedResource { // 空类即可,无需任何成员 } }检查视图中的注入与调用是否正确
确认视图中的注入语句正确,泛型参数指向正确的SharedResource类,且调用时的变量名与注入名一致:@inject IHtmlLocalizer<SharedResource> SharedLocalizer <!-- 调用示例 --> @SharedLocalizer["Year"]
内容的提问来源于stack exchange,提问作者nnmmss
相关产品推荐
相关产品推荐

