简介:我是一名试图学习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");
}
Run Code Online (Sandbox Code Playgroud)
索引方法:
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);
}
Run Code Online (Sandbox Code Playgroud)
我试过这个指南:ClickThis和this one:ClickThis2但是我收到了这条消息:
我知道来自2号gudie的这条线可能很重要,但现在还没有如何应用它. -
var product = TempData["myTempData"] as Product;
我想做的最后一件事是将它传递给索引视图,但不知道如何.我目前正在从索引传递一个模型.
告诉我你是否还想看到它.喜欢依赖.
我得到的所有帮助都是黄金,非常感谢!
Tod*_*all 26
我在google搜索"asp.net core redirect to action tempdata"时登陆了这个问题.我找到了答案,并将其张贴在这里供后代使用.
问题
我的问题是,在填写一些TempData值并调用之后RedirectToAction(),TempData在我重定向到的页面上将是空的.
解
每HamedH的答案在这里:如果您正在运行ASP.NET 2.1的核心,打开你的Startup.cs文件,并确保在您的Configure()方法app.UseCookiePolicy();来之后app.UseMVC();.
例:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
...
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
app.UseCookiePolicy();
}
Run Code Online (Sandbox Code Playgroud)
Ahm*_*mar 11
你配置了Session吗?TempData在幕后使用会话.
Project.json
"Microsoft.AspNetCore.Session": "1.1.0"
Run Code Online (Sandbox Code Playgroud)
这是Startup.cs文件.- ConfigureServices方法
public void ConfigureServices(IServiceCollection services)
{
services.AddMemoryCache();
services.AddSession();
services.AddMvc();
}
Run Code Online (Sandbox Code Playgroud)
和Configure方法.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseSession();
app.UseMvc(routes => {
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
Run Code Online (Sandbox Code Playgroud)
现在尝试使用TempData,它会工作.
您可以使用set ASPNETCORE_ENVIRONMENT=Development环境变量设置环境.
| 归档时间: |
|
| 查看次数: |
8073 次 |
| 最近记录: |