Передача массива объектов в виде TempData[] для просмотра


Я хотел бы вернуть два значения из действия post в представление в 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 3

2 ответа:

Вы получаете доступ к ним в представлении, сначала приводя их в массив объектов, а затем индексируя их, т. е.

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

@objectArray[0]
@objectArray[1]

.Net скрипка

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

Попробуйте что-нибудь вроде этого

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