0

我正在尝试从 TempData 中提取视图中的 id 并将其放置在 Html.Hidden 中。当我使用 Debug 查看 TempData 的信息时,它确实显示了所有值,但 Html.Hidden 为我的 id 返回一个空值。

  @Html.Hidden("idMatch", @TempData["leMatch,idMatch"])   

我错过了什么?

4

1 回答 1

1

你不需要@之前的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)

}
于 2012-07-23T14:48:02.523 回答