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 页面搜索表单在按下后退按钮时不保留旧值的主要内容,如果未能解决你的问题,请参考以下文章

PHP:在按下 Back 时阻止表单被意外重新处理

如何为后退按钮保留 Web 表单内容

如何在按下单个片段的手动后退按钮时返回上一个片段?

Android Fragment 在按下后退按钮时未保存 UI 状态

有一种方法可以在按下外部按钮到 eureka 后填写 eureka 表单吗?

在 routerLink 导航后按下后退按钮时,Mat Form 字段不会加载类