在Asp.Net Core中使用TempData时无法重定向到操作
我试图在Asp.Net Core中实现一个简单的事情.这在Asp.Net Mvc中没什么大不了的.我有这样的动作方法
public async Task<IActionResult> Create([Bind("Id,FirstName,LastName,Email,PhoneNo")] Customer customer) { if (ModelState.IsValid) { _context.Add(customer); await _context.SaveChangesAsync(); TempData["CustomerDetails"] = customer; return RedirectToAction("Registered"); } return View(customer); } public IActionResult Registered() { Customer customer = (Customer)TempData["CustomerDetails"]; return View(customer); } 起初我假设TempData默认工作,但后来意识到必须添加和配置它.我在启动时添加了ITempDataProvider.官方文件似乎描述了这应该足够了.它没用.然后我还将它配置为使用Session public void ConfigureServices(IServiceCollection services) { services.AddMemoryCache(); services.AddSession( options => options.IdleTimeout= TimeSpan.FromMinutes(30) ); services.AddMvc(); services.AddSingleton<ITempDataProvider,CookieTempDataProvider>(); } 在编写app.UseMvc之前,我的以下行与Startup的Configure方法中的Session相关. app.UseSession(); 这仍然无效.发生的事情是我没有得到任何异常,因为我错过了一些配置之前我已经得到了TempData,但现在创建操作方法无法重定向到Registered Method. Create方法完成所有工作但RedirectToAction无效.如果我删除将客户详细信息分配给TempData的行,则RedirectToAction会成功重定向到该操作方法.但是在这种情况下,已注册的操作方法显然无法访问CustomerDetails.我错过了什么? 解决方法
@赢得.你是对的.我意识到在阅读本文中的免责声明后,只要您想在Asp.net Core中使用TempData,就需要进行序列化和反序列化.
https://andrewlock.net/post-redirect-get-using-tempdata-in-asp-net-core/ 我首先尝试使用BinaryFormatter,但发现它也已从.NET Core中删除.然后我使用NewtonSoft.Json来序列化和反序列化. TempData["CustomerDetails"] = JsonConvert.SerializeObject(customer); public IActionResult Registered() { Customer customer = JsonConvert.DeserializeObject<Customer>(TempData["CustomerDetails"].ToString()); return View(customer); } 这是我们现在要做的额外工作,但看起来就像现在这样. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-4 – Asp.Net MVC 4 bundle不提供section属性?
- asp.net-mvc – NLog在所有aspnet布局渲染器上抛出配置异常
- AspNetCore MVC页面数据提交验证
- asp.net – Jquery用户控件
- asp.net-mvc – 在自定义编辑器中只包含一次脚本
- asp.net-mvc – 如何使WebAPI操作只能从我的应用程序访问?
- asp.net – 完全替换Swashbuckle UI
- asp.net – ExecuteScalar抛出NullReferenceException
- asp.net – Visual Studio – 为什么.ASPX文件比.ASPX.CS文
- asp.net-mvc – 如何在响应重定向MVC后保留Server.GetLastE
- 将搜索框添加到ASP.Net动态数据列表页面
- ASP.net上的URL路由,需要从url获取参数
- asp.net-mvc – MVC .net属性上必需属性的布尔值
- asp.net-mvc – ASP.NET MVC帖子模型的示例?
- asp.net-mvc – 用于MVC不引人注目的远程验证的事
- asp.net-mvc – 使用Html.BeginForm与querystrin
- asp.net – 通过Visual Basic从网站检索数据
- asp.net – Text 4.5中的文本.NET 4.5中的Time属
- 什么是ASP.NET的最佳/推荐的CAPTCHA组件
- ASP.Net – C# – SQL Server – 只刷新缓存的Da