gpt4 book ai didi

c# - 对类型 'HttpContextBase' 的引用声称它在 'System.Web' 中定义但找不到

转载 作者:行者123 更新时间:2023-12-04 14:22:39 35 4
gpt4 key购买 nike

我遇到了一个非常奇怪的错误,我只在一些相当广泛的谷歌搜索中发现了几次。我正在创建一个授权属性以添加到我在类库中的 ASP.NET MVC 项目中的操作中。我通过 NuGet 安装了 ASP 包,并且可以使用智能感知从 filterContext 获取 HttpContext,但是它说在它应该在的地方找不到 HttpContext 类型。

Reference to type 'HttpContextBase' claims it is defined in 'System.Web' but it could not be found.



StackOverflow 上有几个版本,但没有一个对我有用,因为其中大部分都包括重新启动 Visual Studio 或只是构建项目。

编辑
using System.Web.Mvc;
namespace Foo
{
public class RequireLogin : IAuthorizationFilter
{
public void OnAuthorization(AuthorizationContext filterContext)
{
if (filterContext.HttpContext.Request.Cookies)
{

}
}
}
}

错误出在 if 语句的 HttpContext 上。

最佳答案

我在一个相当简单的网页应用程序中遇到了同样的错误,该应用程序由一个 .cshtml 组成。页面,它什么也没做(“Hello World”)。在我的情况下,错误是由于引用了不正确的 .NET 版本。

显然,如果你只是创建一个基本的 web.configindex.cshtml从头开始,.NET 版本 2 被默认引用,因此 HttpContextBase没有定义。

将目标版本更改为.NET 4.x,问题解决。

最简单的web.config我能够让它工作的是:

<?xml version="1.0"?>
<configuration>
<system.webServer>
<defaultDocument>
<files>
<add value="index.cshtml"/>
</files>
</defaultDocument>
</system.webServer>
<system.web>
<compilation targetFramework="4.6.2" debug="true"/>
</system.web>
</configuration>

总之,检查您的 .NET 目标版本。它很可能是不正确的。

关于c# - 对类型 'HttpContextBase' 的引用声称它在 'System.Web' 中定义但找不到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52374873/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com