将对象数组作为TempData []传递给视图

时间:2015-04-08 08:53:33

标签: c# asp.net asp.net-mvc razor tempdata

我想将一个帖子操作中的两个值返回到RedirectToAction中的视图。 TempData[]似乎是理想选项,因为数据仅用于在用户保存后显示成功消息。

我想在成功消息中显示用户刚保存的图像的小缩略图和已保存项目的标题。

目前,我将所有数据作为new MvcHtmlString

传递
TempData["SaveMsg"] = new MvcHtmlString("<img src=" + model.ImageUrl + " //> <h3//>" + model.Name + " has been saved.<//h3//> " ) ;

我想将其作为object[]

发送
TempData["SaveMsg"] = new object[]{model.ImageUrl , model.Name}

然后我就可以将对象传递给HtmlHelper并编写消息显示的条件。

我只是不知道如何访问视图中的对象

@TempData["SaveMsg"][0] // (O.o) // Error Cannot apply indexing with 
                                 //  [] to an expression of type 'object'

这甚至可能吗?

2 个答案:

答案 0 :(得分:7)

您可以先在视图中将它们转换为对象数组,然后将它们编入索引即可在视图中访问它们,即

@{
  var objectArray = (object[]) TempData["SaveMsg"];
}

@objectArray[0]
@objectArray[1]

.Net fiddle

答案 1 :(得分:0)

@TempData["SaveMsg"][0] will not work.

尝试这样的事情

obj[] saveMsgs = (obj[])TempData["SaveMsg"];