2 回答
TA贡献1886条经验 获得超2个赞
注意:我不使用 Razor Pages,所以了解该技术的人可能会有更好的答案。
您可以在表单中使用隐藏字段来保留 POST-back 中的值:
<form asp-route-returnUrl="@Model.ReturnUrl" method="post">
@Html.HiddenFor(model => model.AccountLevel)
@*OR, TagHelper way*@
<input asp-for="AccountLevel" type="hidden"/>
<h4>Create a new account.</h4>
....
</form>
启用会话后,使用会话也很容易做到这一点:
public void OnGet(string returnUrl = null, int acclevel = 1)
{
HttpContext.Session.SetInt32("AccountLevel", acclevel);
ReturnUrl = returnUrl;
}
public async Task<IActionResult> OnPostAsync(string returnUrl = null)
{
int accountLevel = HttpContext.Session.GetInt32("AccountLevel");
...
}
TA贡献1836条经验 获得超4个赞
请求后唯一存在的数据是与该请求一起发送的数据。即使在会话的情况下,关键会话标识符也必须由客户端在请求中传输到服务器以恢复该会话。
您从数据库中检索到的任何数据都必须重新发布或查询。此外,不应发布不允许用户明确更改的数据。因此,大多数数据应该重新查询。
至于用户选择的选项,当然应该发布。但是,应该通过再次查询该数据库来获取所选计划和其他计划选项的实际详细信息。这将是必要的,例如,如果由于验证错误而需要在发布后重新显示表单。
- 2 回答
- 0 关注
- 145 浏览
添加回答
举报
