У меня есть вспомогательная процедура, которую я использую в нескольких представлениях, которая обертывает отличное форматирование бутстрапа для отображения сообщения.MVC Общая процедура, использующая viewbag
@MyHelpers.StatusMessage(ViewBag.Status, ViewBag.StatusMessage)
Для того, чтобы это работало, я должен использовать TempData кратко (в случае перенаправления), а затем поместить значения обратно в viewbag.
Как так:
@{
// View Init
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
// In case we are here due to a redirect...
if (!String.IsNullOrEmpty((string)TempData["Status"]))
{
ViewBag.Status = TempData["Status"];
}
if (!String.IsNullOrEmpty((string)TempData["StatusMessage"]))
{
ViewBag.StatusMessage = TempData["StatusMessage"];
}
}
Я бы очень хотел, чтобы это было общим рутина, как мой помощник, но я не могу получить доступ к viewbag оттуда.
Есть ли где-нибудь я могу разместить общий код и по-прежнему получить доступ к сумке?
Я открыт для альтернативных способов сделать это, как хорошо ... Я понимаю, что я мог бы сделать это трудный путь ...
Спасибо.
Разрешение:
Не идеально, но позволяет для повторного использования и экономит несколько строк кода.
@helper SetStatusInfoFromTempData(dynamic viewBag, string status, string statusMessage)
{
// In case we are here due to a redirect...
if (!String.IsNullOrEmpty(status))
{
viewBag.Status = status;
}
if (!String.IsNullOrEmpty(statusMessage))
{
viewBag.StatusMessage = statusMessage;
}
}