C# Razor Page本地化报错:AddViewLocalization不存在等问题求助
Razor Pages本地化代码报错的原因与解决方法
我在用C# Razor Page开发网站,实现本地化功能时,编写的代码出现了两个错误:
CS0103 “AddViewLocalization”在当前上下文中不存在;CS1022 应输入类型或命名空间定义,或文件结尾。
出错的代码片段如下:
var builder = WebApplication.CreateBuilder(args); builder.Services.AddLocalization(options => options.ResourcesPath = "Resources"); // Add services to the container. builder.Services.AddRazorPages(); *** .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix) .AddDataAnnotationsLocalization();
错误原因
- 语法错误:
AddRazorPages()后面加了分号,导致后续的.AddViewLocalization()变成独立代码语句,脱离了AddRazorPages()返回的服务配置上下文,触发CS1022错误。 - 缺少依赖包:
AddViewLocalization和AddDataAnnotationsLocalization方法属于Microsoft.AspNetCore.Mvc.Localization类库,若项目未安装对应NuGet包,编译器找不到这些方法,触发CS0103错误。
解决方法
- 修正语法结构:删除
AddRazorPages()后面的分号,保持方法链式调用的连续性。 - 安装必要NuGet包:
- 使用Package Manager控制台执行:
Install-Package Microsoft.AspNetCore.Mvc.Localization - 或者使用.NET CLI执行:
dotnet add package Microsoft.AspNetCore.Mvc.Localization
- 使用Package Manager控制台执行:
修正后的完整代码
var builder = WebApplication.CreateBuilder(args); builder.Services.AddLocalization(options => options.ResourcesPath = "Resources"); // Add services to the container. builder.Services.AddRazorPages() .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix) .AddDataAnnotationsLocalization();
内容的提问来源于stack exchange,提问作者omrctlbs
相关产品推荐
相关产品推荐

