gpt4 book ai didi

c# - 为什么我不能从 Controller 初始化程序访问 HttpContext?

转载 作者:太空狗 更新时间:2023-10-29 22:12:47 26 4
gpt4 key购买 nike

我有一个这样设置的 Controller :

public class GenesisController : Controller
{

private string master;
public string Master { get { return master; } }

public GenesisController()
{
bool mobile = this.HttpContext.Request.Browser.IsMobileDevice; // this line errors
if (mobile)
master="mobile";
else
master="site";
}

}

我所有的其他 Controller 都继承自这个 GenesisController。每当我运行该应用程序时,我都会收到此错误消息

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

如何从 Controller 初始化访问 HttpContext?

最佳答案

因为 HttpContext 在 Controller 构造函数中不可用。您可以在可访问的地方覆盖 Initialize 方法,如下所示:

protected override void Initialize(RequestContext requestContext)
{
base.Initialize(requestContext);
bool mobile = this.HttpContext.Request.Browser.IsMobileDevice; // this line errors
if (mobile)
master="mobile";
else
master="site";
}

此外,我敢打赌,您尝试使用此主变量和 bool 值所做的事情可能会在 far more elegant way 中得到解决。而不是让您的 Controller 担心这样的事情。

关于c# - 为什么我不能从 Controller 初始化程序访问 HttpContext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6850073/

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