简介:我是一名.NET学生,试图学习ASP.NET Core。所以请谅解。我在网上搜索了我的问题的答案,但没有找到一个对我有用的解决方案。
问题:无论何时创建了post,我都想将验证消息从create方法传递给索引IActionmethod,现在他们将其显示为警告消息。我在网上读到,ViewBag剂量在重定向中存活下来,但TempData确实存在。到目前为止这是我的密码。
创建post方法:
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号可能很重要,但现在不知道如何应用它。-
var product = TempData["myTempData"] as Product;
我最不想做的就是把它传递给索引视图,但是不知道怎么做。我目前正在从索引中传递一个模型。
告诉我你还想看什么。就像依赖关系。
我得到的一切帮助都是金子,我会非常感激的!
发布于 2017-01-06 06:37:05
配置会话了吗?TempData在幕后使用会话。
Project.json
"Microsoft.AspNetCore.Session": "1.1.0"这是Startup.cs文件。- ConfigureServices法
public void ConfigureServices(IServiceCollection services)
{
services.AddMemoryCache();
services.AddSession();
services.AddMvc();
}和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?}");
});
}现在尝试使用TempData,它会起作用的。
并且可以使用set ASPNETCORE_ENVIRONMENT=Development环境变量设置环境。
发布于 2018-08-15 19:31:31
我在谷歌上搜索"asp.net核心重定向到动作诱饵“时,发现了这个问题。我找到了答案,并将其张贴在这里,以供后人使用。
问题
我的问题是,在输入一些TempData值并调用RedirectToAction()之后,TempData将在重定向到的页面上为空。
溶液
根据HamedH的答案这里:如果您正在运行ASP.NET Core2.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();
}发布于 2017-01-05 19:42:51
TempData在用户会话下存储数据服务器端.您需要启用会话(正如异常消息所述)。检查本手册。
如果您不想使用会话-您需要一些其他方式来存储数据(cookie?)
https://stackoverflow.com/questions/41492634
复制相似问题