我正在尝试从 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
。然后您可以使用HiddenFor
HTML 辅助方法
@model CustomerViewModel
@using(Html.BeginForm()){
@Html.HiddenFor(x => x.CustomerID)
}