c# - 使用 Tempdata 使我的应用程序崩溃

标签 c# asp.net visual-studio-2015

我是 ASP.NET 的新手,我正在尝试在我在 Visual Studio 2015 中创建的 Web 应用程序中的两个 Controller 之间传递一个对象。该 Web 应用程序使用的是 ASP.Net 5 预览模板 Web 应用程序(如果有帮助,我想我正在使用 beta 代码 7,并且我为 DNX Core 5 构建)。

我遇到的问题是每当我尝试将任何内容 放入TempData 变量时,程序似乎崩溃了。例如,在“创建”方法中我有:

        [HttpPost]
    public ActionResult Create(Query query)
    {
        switch (query.QueryTypeID)
        {
            case 1:
                TempData["Test"] = "Test";
                return RedirectToAction("Index", "EventResults");
            case 2:
                break;
            default:
                break;
        }
        return View();
    }

在该方法中,我尝试在键“test”下添加一个简单的测试字符串。当我使用其中的 TempData 语句运行应用程序时,我收到一条错误消息,指出

An unhandled exception occurred while processing the request.

InvalidOperationException: Session has not been configured for this application >or request. Microsoft.AspNet.Http.Internal.DefaultHttpContext.get_Session()

我尝试转到位于项目的 wwwroot 元素中的 Web.config 并将“sessionState”对象添加到“system.web”元素中,但这对错误没有影响。

任何帮助将不胜感激,因为我一直在到处寻找解决方案。我希望这是我不知何故错过的愚蠢/明显的事情。

最佳答案

要在 ASP.NET 5 中使用中间件,例如 Session、Cache 等,您必须显式启用它们。

通过在 project.json 文件的依赖项部分添加适当的 nuget 包来启用 session (确保包版本与您添加的其他依赖项的版本相匹配):

"Microsoft.AspNet.Session": "1.0.0-*"

以及相应的 session (缓存)存储包(如下面的示例;在内存中):

"Microsoft.Extensions.Caching.Memory": "1.0.0-*"

并将中间件添加到Startup.cs服务配置中的依赖解析:

public void ConfigureServices(IServiceCollection services)
{
    services.AddCaching();
    services.AddSession(/* options go here */);
}

并在 Startup.cs OWIN 配置中将中间件添加到 OWIN:

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

确保 UseSession MVC 配置。

关于c# - 使用 Tempdata 使我的应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33814042/

相关文章:

visual-studio-2015 - 在 Visual Studio 2015 中隐藏右上角的用户名

java - 基于不同输入实现多种策略的设计模式

c# - linq 查询是否可以更改其数据源,即字典的内容?

c# - 使用 join、group-by 和 where 将 sql 转换为 linq

c# 将 int 缩短为区分大小写的代码

asp.net - 如何在 ASP.NET 中的主题之间共享 .skin 主题文件?

javascript - 尽管我一遍又一遍地使用相同的格式,但我得到输入字符串的格式不正确

c++ - 在 CMake 中隐藏 <project>_automoc 目标

c++ - 如何在 Visual Studio 2015 中构建具有循环依赖项的 C++ 项目?

c# - C#通用扩展方法可编译但无法使用?