.NET 3.1环境下出现'QueryHelpers'不存在于当前上下文报错如何解决
问题解决方案
你漏了2个关键配置步骤,按下面操作就能解决:
- 第一步:确认你安装的
Microsoft.AspNetCore.WebUtilitiesNuget包版本适配.NET 3.1,该环境最高兼容版本为2.2.x系列,如果你安装了3.x以上版本会出现命名空间失效问题,直接卸载重装2.2.0版本即可。 - 第二步:在页面补充对应命名空间引用,两种方式二选一:
- 单独在当前页面加引用:在
@using Linkington.Data下方新增一行@using Microsoft.AspNetCore.WebUtilities - 全局引用:找到项目的
_Imports.razor文件,添加@using Microsoft.AspNetCore.WebUtilities,配置后所有页面都可以直接调用QueryHelpers,不需要重复引用。
- 单独在当前页面加引用:在
- 额外注意:你之前写的完整命名空间调用语法存在错误,正确的完整写法应该是
Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery,你漏写了类名QueryHelpers,所以才会调用失败。
以下是修正后的完整代码:
@page "/opportunity/{page}" @inject NavigationManager NavManager @using Linkington.Data @using Microsoft.AspNetCore.WebUtilities @inject dbFuctions db Welcome to your new app. @code { int currentCount = 0; protected override void OnInitialized() { var uri = NavManager.ToAbsoluteUri(NavManager.Uri); if (QueryHelpers.ParseQuery(uri.Query).TryGetValue("initialCount", out var _initialCount)) { currentCount = Convert.ToInt32(_initialCount); } } void IncrementCount() { currentCount++; } }
修改完成后清理项目重新生成即可解决报错。
内容的提问来源于stack exchange,提问作者MattHodson
相关产品推荐
相关产品推荐

