.net-core - 如何停止从一页到另一页的剃刀部分持久状态消息
问题描述
我有一个剃须刀解决方案,其中一部分包含在 Visual Studio 的模板解决方案中。部分中的代码只是一条状态消息,如下所示:
@model string
@if (!String.IsNullOrEmpty(Model))
{
var statusMessageClass = Model.StartsWith("Error") ? "danger" : "success";
<div class="alert alert-@statusMessageClass alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
@Model
</div>
}
在页面中,它是这样引用的:
<partial name="_StatusMessage" model="Model.StatusMessage" />
在它被放入的页面的pagemodel中,消息的值是这样设置的:
[TempData]
public string StatusMessage { get; set; }
public IActionResult OnGet(int regFlow)
{
StatusMessage = "Blah blah status message";
return Page();
}
问题是,虽然状态消息在相关页面上显示良好,但当我单击另一个页面上也声明了 StatusMessage 部分时,它仍然存在 - 所以它仍然显示与前一页相关的消息,但是与当前页面完全无关。如何阻止它跨页面保留消息?
解决方案
您已经使用 TempData 注释了 StatusMessage,因此下一个 HTTP 请求也可以访问它。如果它只需要显示在该页面中,为什么需要用 TempData 对其进行注释?
推荐阅读
- airflow - 如何访问 docker-compose CLI
- flutter - Flutter 'Icons' 需要很长时间才能显示图标列表
- fpga - 无法使用 vid 0403、pid 6010 打开 ftdi 设备
- python - 如何将 PySide6 QTableWidget 列宽设置为 15pt?
- regex - 正则表达式在匹配前的最后一个空格处开始新行
- coinbase-api - Coinbase 是否有过去 24 小时市场表现数据的数据端点?
- list - 在 dart 中解压列表
- gitlab - GitLab CI/CD 的 .gitlab-ci.yml 文件中字符串的大小写不敏感比较
- macos - 如何在 React Native(桌面应用程序)中收听全局快捷键?
- c# - 无法访问 microsoft.entityframeworkcore.Tools?