首页 > 解决方案 > Razor 初始化 HttpContext.Current

问题描述

我有一个 WebForms ASP.NET 项目。最近我添加了一些 Razor Views。一切正常,但现在我想使用 C# 从 Razor 调用以前从 jQuery Ajax 调用中调用的方法。此方法存储在 ashx 通用处理程序中。所以我正在初始化通用处理程序并从 Razor 视图中调用该方法,如下所示:

string MyUser = Request.Cookies["UserCookie"].Value;
MyProject.HandlersFolder.MyHandler temp_MyHandler = new MyProject.HandlersFolder.MyHandler();
var results = JsonConvert.DeserializeObject<String>(temp_MyHandler.GetmyCartItems(MyUser));

我的通用处理程序继承了初始化上下文的 BaseHandler:

public class MyHandler : BaseHandler
{
        public string GetmyCartItems(string MyUser)
                {
                    if (context.Request.Cookies["mycookie"] != null) //The code always crash here because context is always null
                                    {

                                    }
                }
}

问题是代码总是在 context.Request 中崩溃,因为 context 总是为空。我的第一个想法是写这样的方法:

public class MyHandler : BaseHandler
{
        public string GetmyCartItems(string MyUser)
                {
                    if (HttpContext.Current.Request.Cookies["mycookie"] != null) 
                                    {

                                    }
                }
}

这种方式工作正常,但如果有另一种方法可以从 Razor 初始化当前上下文并且不需要触摸我的 ashx 通用处理程序,我希望您能提出建议。

标签: c#asp.net-mvcrazor

解决方案


推荐阅读