asp.net-core - 为什么 tempdata 属性在第一次读取后保留?
问题描述
它假设 tempdata 读取一次并被处理,并且在使用它作为属性之前没问题,现在使用它就像属性一样,它在第一次读取后保留到下一个请求这里是我的示例代码页面 A
public class AModel : PageModel
{
[TempData]
public string Message { get; set; }
public void OnGet()
{
Message = "test Page A";
}
}
<h1>A</h1>
<p>@Model.Message</p>
<a asp-page="b">Page B</a>
B页
public class BModel : PageModel
{
[TempData]
public string Message { get; set; }
public void OnGet()
{
}
}
<h1>B</h1>
<p>@Model.Message</p>
<a asp-page="A">Page A</a>
当从页面 A 导航到页面 b 时,它不应该显示来自页面 A 的消息,但我得到消息出现在页面 B 结果看起来像这样
B 测试页 A
页面 A
解决方案
从页面 A 导航到页面 b 时,不应显示来自页面 A 的消息
如果您使用以下代码进行测试,您会很容易发现其中的代码片段@Model.Message
没有A.cshtml
读取 TempData 值。
<h1>A</h1>
using TempData["Message"]: <p>@TempData["Message"]</p>
<hr />
using Model.Message: <p>@Model.Message</p>
<hr />
using TempData.Peek("Message"): <p>@TempData.Peek("Message")</p>
<hr />
using Model.Message: <p>@Model.Message</p>
<a asp-page="b">Page B</a>
上述测试的输出
正如本文档中提到的 TempData :
This property stores data until it's read in another request.
推荐阅读
- php - 计算 php 数组中国家/地区的唯一出现次数并将它们添加到统计数组中
- eclipse - 如何使用 selenium 在 java 上解决此错误?
- scikit-learn - 是negative_mean_squared 越大,精度越高,还是计算越少,精度越高?
- html - 如何从 django 将数据保存在数据库表中?
- mysql - 返回每列 MySQL 中的列名和不同的值
- c# - 将自定义表单区域连接到 Outlook 中的任务详细信息页面
- python - 即使使用 RotatingFileHandler,Django 也可以一次记录到多个文件?
- sql - sql子查询中的分组
- numpy - 带有 Keras 模型的自定义损失函数
- c# - 关于文件读取和比较的问题