介绍:
我是一名试图学习ASP.NET核心MVC的.NET学生.所以请理解.我在网上搜索了我的问题的答案,但还没有找到适合我的解决方案.
我是一名试图学习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 =开发环境变量来设置环境.