asp.net-core-mvc – 使用RedirectToAction传递TempData

前端之家收集整理的这篇文章主要介绍了asp.net-core-mvc – 使用RedirectToAction传递TempData前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
介绍:
我是一名试图学习ASP.NET核心MVC的.NET学生.所以请理解.我在网上搜索了我的问题的答案,但还没有找到适合我的解决方案.

问题:
我想在创建帖子时将创建帖子方法的验证消息传递给索引IActionmethod,并且它们现在将其显示为警报消息.我在网上看到ViewBag在重定向中存活,但TempData确实如此.到目前为止这是我的代码.

创建帖子方法

public IActionResult CreatePost(string textContent,string headline,string type)
    {

        var catType = new Category() { CategoryType = type.ToUpper() };

        if (db.Category.Any(s => s.CategoryType.Trim().ToLower() == type.Trim().ToLower()))
            catType = db.Category.FirstOrDefault(s => s.CategoryType.Trim().ToLower() == type.Trim().ToLower());


        var newPost = new Post()
        {
            Content = textContent,Header = headline,DateOfPost = DateTime.Now,category = catType

        };
        db.Posts.Add(newPost);
        db.SaveChanges();

        TempData["validation"] = "Your post hase been publsihed";

        return RedirectToAction("Index");
    }

索引方法

public IActionResult Index()
        {

        var validation = TempData["validation"];

            var posts = (from x in db.Posts
                         orderby x.DateOfPost descending
                         orderby x.PostID descending
                         select x);

            return View(posts);
        }

我试过这个指南:ClickThis和这一个:ClickThis2但我收到了这条消息:

我知道来自2号gudie的这条线可能很重要,但现在还没有如何应用它. –

var product = TempData["myTempData"] as Product;

我想做的最后一件事是将它传递给索引视图,但不知道如何.我目前正在从索引传递一个模型.

告诉我你是否还想看到它.喜欢依赖.

我得到的所有帮助都是黄金,非常感谢!

解决方法

你配置了Session吗? TempData在幕后使用会话.

Project.json

"Microsoft.AspNetCore.Session": "1.1.0"

这是Startup.cs文件. – ConfigureServices方法

public void ConfigureServices(IServiceCollection services)
{
     services.AddMemoryCache();
     services.AddSession();
     services.AddMvc();
}

和配置方法.

public void Configure(IApplicationBuilder app,IHostingEnvironment env,ILoggerFactory loggerFactory)
{
    app.UseSession();
    app.UseMvc(routes => {
        routes.MapRoute(
            name: "default",template: "{controller=Home}/{action=Index}/{id?}");
    });
}

现在尝试使用TempData,它会工作.

您可以使用设置ASPNETCORE_ENVIRONMENT =开发环境变量来设置环境.

猜你在找的asp.Net相关文章