C# 如何在auto属性上使用带有TempData属性的Keep和Peek

C# 如何在auto属性上使用带有TempData属性的Keep和Peek,c#,razor,asp.net-core-2.0,C#,Razor,Asp.net Core 2.0,已在dotnet core 2.0的Razor页面中作为属性引入,但在Keep和Peek中使用它时存在问题。当属性位于属性上时,将读取该值并在“自动”属性中标记为删除 [TempData] public string MyId { get; set; } 如何将TempData.Peek()与属性一起使用?如果在第一页中使用TempData属性设置自动属性: [TempData] public string MyId { get; set; } 然后,在第二秒内读取TempD

已在dotnet core 2.0的Razor页面中作为属性引入,但在
Keep
Peek
中使用它时存在问题。当属性位于属性上时,将读取该值并在“自动”属性中标记为删除

    [TempData]
    public string MyId { get; set; }

如何将
TempData.Peek()
与属性一起使用?

如果在第一页中使用
TempData
属性设置自动属性:

[TempData]
public string MyId { get; set; }
然后,在第二秒内读取
TempData
时,您可以使用
Peek
防止将其标记为删除,因此:

var myId = TempData.Peek("TempDataProperty-MyId").ToString();

这将持续工作到您回发到第二页的次数。

您想在哪里进行
Peek
(仅获取值)?@Shyju值将在下一页中读取,但该页将被回发到,并且不能在请求之间删除该值。TempData将在您正在阅读的页面之后消失。如果希望它成为表单提交的一部分,则需要将其包含在表单提交请求数据中(将其保存在隐藏元素中并提交)。TempData是为短期使用而设计的。
var myId=TempData.Peek(“TempDataProperty myId”).ToString()将在重定向和回发之间起作用,并且将始终起作用。这看起来很奇怪,因为我必须检查数据才能找到那个名字。如何使用它?有什么先做的设置吗?即使将TempData属性置于属性上,我的TempData字典也是空的。