【发布时间】:2021-07-17 09:34:08
【问题描述】:
我有一个带有表格的 Asp Core 5.0 Razor 页面,该表格代表例如来自数据库的消息。有几个表格放置在几个选项卡中(Boostrap 4 nav-pills)。每条记录都有一个用于修改消息的操作的图标:
<a asp-page-handler="ModifyMessage" asp-route-id="@item.Id" title="Modify message"><i class="fas fa-edit"></i></a>
该操作的代码隐藏类似于:
public async Task<IActionResult> OnGetModifyMessageAsync(Int64 Id)
{
var message = _context.Messages.Single(m => m.Id == Id);
message.MessageIsRead = !message.MessageIsRead;
await _context.SaveChangesAsync();
return RedirectToPage(); //it can be Page();
}
在我的视图中,当用户更改活动选项卡时,将活动选项卡 ID 保存在 window.location.hash 中。之后我阅读 window.location.hash 并在页面重新加载时恢复活动标签。
window.location.hash 值在通过 F5(甚至 Ctrl+F5)和 JavaScript 重新加载页面之间保留:
$('#SomeButtonId').click(function (e) {
window.location.reload();
});
但是当页面通过return RedirectToPage();(或return Page();)重新加载时,window.location.hash值会被清除。
那么在调用RedirectToPage()时如何保存window.location.hash?
提前谢谢你。
【问题讨论】:
标签: javascript asp.net-core razor razor-pages .net-5