在视图中从TempData中提取数据

时间:2012-07-23 14:44:44

标签: asp.net asp.net-mvc

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

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

我错过了什么?

1 个答案:

答案 0 :(得分:1)

@之前您不需要TempData

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

编辑:即使@前面的TempData,它也不会显示任何错误,它会正确呈现隐藏元素。

TempData的生命周期很短,您只应在当前和后续请求期间使用它。 Session对象是TempData对象的后备存储,它比常规会话更快地被销毁,即紧接在后续请求之后。

我猜你的TempData在你的情况下变空了。这就是它在隐藏字段中呈现为空值的原因。

我强烈建议您使用强类型 ViewModels 而不是 magical(动态类型) TempData/Viewdata。您可以使用HiddenFor HTML帮助程序方法

@model CustomerViewModel

@using(Html.BeginForm()){
  @Html.HiddenFor(x => x.CustomerID)

}