我正在尝试从 TempData 中提取视图中的 id 并将其放置在 Html.Hidden 中。当我使用 Debug 查看 TempData 的信息时,它确实显示了所有值,但 Html.Hidden 为我的 id 返回一个空值。
@Html.Hidden("idMatch", @TempData["leMatch,idMatch"])
我错过了什么?
我正在尝试从 TempData 中提取视图中的 id 并将其放置在 Html.Hidden 中。当我使用 Debug 查看 TempData 的信息时,它确实显示了所有值,但 Html.Hidden 为我的 id 返回一个空值。
@Html.Hidden("idMatch", @TempData["leMatch,idMatch"])
我错过了什么?
你不需要@之前的TempData。
@Html.Hidden("idMatch", TempData["leMatch,idMatch"])
编辑:即使在@前面TempData,它也不会显示任何错误,并且会正确呈现隐藏元素。
TempData 的生命周期很短,您应该只在当前和后续请求期间使用它。Session对象是对象的后备存储,TempData它比常规会话更快地被销毁,即在后续请求之后立即销毁。
我猜你TempData的情况是空的。这就是它在隐藏字段中呈现为空值的原因。
我强烈建议您使用强类型ViewModels而不是 this magical(dynamically typed) TempData/Viewdata。然后您可以使用HiddenForHTML 辅助方法
@model CustomerViewModel
@using(Html.BeginForm()){
@Html.HiddenFor(x => x.CustomerID)
}