2 回答

TA貢獻1886條經(jīng)驗 獲得超2個贊
注意:我不使用 Razor Pages,所以了解該技術(shù)的人可能會有更好的答案。
您可以在表單中使用隱藏字段來保留 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條經(jīng)驗 獲得超4個贊
請求后唯一存在的數(shù)據(jù)是與該請求一起發(fā)送的數(shù)據(jù)。即使在會話的情況下,關(guān)鍵會話標識符也必須由客戶端在請求中傳輸?shù)椒掌饕曰謴驮摃挕?/p>
您從數(shù)據(jù)庫中檢索到的任何數(shù)據(jù)都必須重新發(fā)布或查詢。此外,不應發(fā)布不允許用戶明確更改的數(shù)據(jù)。因此,大多數(shù)數(shù)據(jù)應該重新查詢。
至于用戶選擇的選項,當然應該發(fā)布。但是,應該通過再次查詢該數(shù)據(jù)庫來獲取所選計劃和其他計劃選項的實際詳細信息。這將是必要的,例如,如果由于驗證錯誤而需要在發(fā)布后重新顯示表單。
- 2 回答
- 0 關(guān)注
- 129 瀏覽
添加回答
舉報