加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 04:03:45 所属栏目:asp.Net 来源:网络整理
导读:介绍: 我是一名试图学习ASP.NET核心MVC的.NET学生.所以请理解.我在网上搜索了我的问题的答案,但还没有找到适合我的解决方案. 问题: 我想在创建帖子时将创建帖子方法的验证消息传递给索引IActionmethod,并且它们现在将其显示为警报消息.我在网上看到ViewBag
介绍:
我是一名试图学习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 =开发环境变量来设置环境.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读