ASP.NET 核心 3.1:POST-REDIRECT-GET:传递参数
ASP.NET Core 3.1: POST-REDIRECT-GET: Passing parameters
我正在尝试实施 POST-REDIRECT-GET 技术,其中我 post 一个 JSON 字符串到我的 razor OnPost 方法。这又会重定向到接受该字符串参数的 OnGet 方法。如何将此输入参数字符串隐藏到我的 OnGet 方法中?
编辑:我尝试使用 ViewData,但在我的 OnGet 方法中该值始终为 null,即使我在重定向之前设置它也是如此。
public async Task<IActionResult> OnPostData(string input_JSON)
{
TempData["InputJSON"] = input_JSON;
return RedirectToPage("GetData");
}
public async Task<IActionResult> OnGetGetData()
{
string tempData = TempData["InputJSON"] as string;
//do somethig with string;
}
我在我的 javascript 中形成了 post,当新的 window 打开时,我在我的 URL 中看到了 input_string。如何在方法之间传递参数?
根据 Microsoft 的说法,TempData 提供程序和会话状态 cookie 不是必需的。我必须在我的 Startup.cs 文件的 ConfigureServices:
中使它成为必不可少的
services.Configure<CookieTempDataProviderOptions>(options => {
options.Cookie.IsEssential = true;
});
我正在尝试实施 POST-REDIRECT-GET 技术,其中我 post 一个 JSON 字符串到我的 razor OnPost 方法。这又会重定向到接受该字符串参数的 OnGet 方法。如何将此输入参数字符串隐藏到我的 OnGet 方法中?
编辑:我尝试使用 ViewData,但在我的 OnGet 方法中该值始终为 null,即使我在重定向之前设置它也是如此。
public async Task<IActionResult> OnPostData(string input_JSON)
{
TempData["InputJSON"] = input_JSON;
return RedirectToPage("GetData");
}
public async Task<IActionResult> OnGetGetData()
{
string tempData = TempData["InputJSON"] as string;
//do somethig with string;
}
我在我的 javascript 中形成了 post,当新的 window 打开时,我在我的 URL 中看到了 input_string。如何在方法之间传递参数?
根据 Microsoft 的说法,TempData 提供程序和会话状态 cookie 不是必需的。我必须在我的 Startup.cs 文件的 ConfigureServices:
中使它成为必不可少的services.Configure<CookieTempDataProviderOptions>(options => {
options.Cookie.IsEssential = true;
});