如何停止从一个页面到另一个页面的剃刀部分持久状态消息
how to stop razor partial persisting status message from one page to another
我有一个剃须刀解决方案,其中包含在 Visual Studio 中的模板解决方案中。 partial中的代码只是一个状态信息,像这样:
@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" />
在页面的页面模型中,消息的值设置如下:
[TempData]
public string StatusMessage { get; set; }
public IActionResult OnGet(int regFlow)
{
StatusMessage = "Blah blah status message";
return Page();
}
问题是,虽然状态消息在相关页面上显示正常,但当我点击另一个也声明了 StatusMessage 部分的页面时它仍然存在 - 所以它仍然显示与上一页,但与当前页面完全无关。我怎样才能阻止它跨页面保留消息?
您已使用 TempData 注释了 StatusMessage,因此下一个 HTTP 请求也可以访问它。如果只需要在那个页面显示,为什么还要用TempData注解?
我有一个剃须刀解决方案,其中包含在 Visual Studio 中的模板解决方案中。 partial中的代码只是一个状态信息,像这样:
@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" />
在页面的页面模型中,消息的值设置如下:
[TempData]
public string StatusMessage { get; set; }
public IActionResult OnGet(int regFlow)
{
StatusMessage = "Blah blah status message";
return Page();
}
问题是,虽然状态消息在相关页面上显示正常,但当我点击另一个也声明了 StatusMessage 部分的页面时它仍然存在 - 所以它仍然显示与上一页,但与当前页面完全无关。我怎样才能阻止它跨页面保留消息?
您已使用 TempData 注释了 StatusMessage,因此下一个 HTTP 请求也可以访问它。如果只需要在那个页面显示,为什么还要用TempData注解?