Razor 页面搜索表单在按下后退按钮时不保留旧值
Posted
技术标签:
【中文标题】Razor 页面搜索表单在按下后退按钮时不保留旧值【英文标题】:Razor Pages Search Form Does Not Retain Old Value On Back Button Press 【发布时间】:2021-12-18 06:36:02 【问题描述】:我正在构建一个内部搜索引擎。我在搜索中使用的表单中有下拉菜单。这一切都在一页中。页面顶部有一个搜索表单,一直使用搜索。
<form id="form" method="get" class="form-inline" >
<div id="divId">
<select
asp-for="@Model.TableId"
class="m-2 form-control tableName"
id="tableName"
name="tableName"
asp-items="@Model.TableSelectList">
</select>
<input name="name"/>
<button type="submit"/>
</form>
服务器端... 公共 IActionResult OnGet()
.....
var queryList = Request.Query;
_repo.getTableResults(queryList['tableId'].First());
.....
return Page();
此表单提交给 get 请求并且可以正常工作。问题是当用户单击后退按钮时,表格下拉列表中的新值被保留。它不会重新选择旧值。举个例子:
我提交表格名称为“table1”的表格。它搜索 table1 并产生结果。然后我提交'table2',它会产生结果。现在我按下后退按钮,它会返回到结果为“table1”的页面。下拉列表中的选定值应该是“table1”,但不是。它仍然是'table2'。 如何在按下后退按钮时将下拉菜单设置回原来的值?
【问题讨论】:
您的意思是浏览器中的back button
?
是的,浏览器中的后退按钮
【参考方案1】:
我最终使用 javascript 路由在页面加载时加载下拉菜单。这样,如果用户单击浏览器后退按钮,则成功加载选定的下拉菜单。如果剃须刀有更好的方法,请分享。
【讨论】:
以上是关于Razor 页面搜索表单在按下后退按钮时不保留旧值的主要内容,如果未能解决你的问题,请参考以下文章
Android Fragment 在按下后退按钮时未保存 UI 状态