首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法设置"Session“变量MVC 5

无法设置"Session“变量MVC 5
EN

Stack Overflow用户
提问于 2021-01-04 03:26:02
回答 1查看 505关注 0票数 0

在我的控制器中,我传递了一个要查看的模型

代码语言:javascript
复制
public IActionResult Forgotpassword()
{
    System.Web.HttpContext.Current.Session["sessionString"] = "sample";

    Forgotpasswordinfo Vmodel = new Forgotpasswordinfo();
    return View(Vmodel);
}

我使用System.Web.HttpContext.Current.Session["sessionString"] = "sample";创建会话变量,但它显示了一个错误,指出HttpContext不存在!?我遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2021-01-04 05:54:18

下面的代码显示了如何设置内存中会话提供程序:

代码语言:javascript
复制
public class Startup
{    
    //...
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDistributedMemoryCache();

        services.AddSession(options =>
        {
            options.Cookie.Name = ".TestApp.Session";                
            options.IdleTimeout = TimeSpan.FromSeconds(30);
            options.Cookie.IsEssential = true;
        });

        services.AddControllersWithViews();
        services.AddRazorPages();
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        //...
        app.UseSession();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapDefaultControllerRoute();
            endpoints.MapRazorPages();
        });
    }
}

在调用UseSession之前无法访问HttpContext.Session

在控制器中设置变量:

代码语言:javascript
复制
using Microsoft.AspNetCore.Http;

public IActionResult Index()
{
    HttpContext.Session.SetString("Parameter", "bla bla");
    return View();
}

代码语言:javascript
复制
@using Microsoft.AspNetCore.Http; 
@{    
    string parameter = Context.Session.GetString("Parameter");
}

大多数情况下,上面的代码是Microsoft文档中示例的一部分。详细信息请参见Session and state management in ASP.NET Core

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65553993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档