Si *_*Thu 4 c# tempdata asp.net-core-2.0
我想在我的.net核心mvc应用程序中使用TempData。我遵循了https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/app-state?view=aspnetcore-2.1#tempdata上的文章
我总是得到NULL这是我的代码:
public async Task<ActionResult> Index(RentalsFilter filter)
{
TempData["test"] = "ABC";
return View();
}
public ActionResult Create()
{
var abc = TempData["test"].ToString();
return View();
}
Run Code Online (Sandbox Code Playgroud)
由于GDRP(https://docs.microsoft.com/zh-cn/aspnet/core/security/gdpr?view=aspnetcore-2.1),发生了类似的问题。如果您希望在不担心GDPR的情况下启动并运行它,只需禁用它即可。下面的配置还使用Cookies(默认)而不是TempData的会话状态。
启动文件
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => false;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.Configure<CookieTempDataProviderOptions>(options =>
{
options.Cookie.IsEssential = true;
});
Run Code Online (Sandbox Code Playgroud)
...
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy(); // <- this
app.UseAuthentication();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
Run Code Online (Sandbox Code Playgroud)
您是否按照文档中所述配置了 TempData:
在ConfigureServices方法中添加:
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddSessionStateTempDataProvider();
services.AddSession();
Run Code Online (Sandbox Code Playgroud)
在配置方法中你应该添加:
app.UseSession();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2547 次 |
| 最近记录: |