Проблема доступа к ViewData в HTML для проекта MVC3 Razor - PullRequest
0 голосов
/ 10 августа 2011

javascript Я передаю значение «3» из контроллера в переменную ViewData для отображения через HTML.

Я проверил, что перед возвратом ActionResult значение «3» равнов переменной (см. код ниже):

public ActionResult Index()
.
.
.
ViewData["ErrCode"] = "3";
                    return RedirectToAction("Index", "Home");

Однако строка при визуализации всегда отображается как пустая строка (см. ниже):

        $().customAlert();
$(document).ready(function () {
'' = "3";
var strErrCode = '';
alert('Hello!');
});

Выше показаноКод взят из следующего кода в теге файла _Layout.cshtml Shared View.Обратите внимание, что я даже принудительно устанавливаю значение «3» в переменную «ErrCode», и сценарий отображается так, как указано выше.

    $().customAlert();
    $(document).ready(function () {
             '@ViewData["ErrCode"]' = "3";
        var strErrCode = '@ViewData["ErrCode"]';
        alert('Hello!');
    });

Я должен неправильно использовать ViewData в js.Как я могу совершить этот простой подвиг?

1 Ответ

1 голос
/ 10 августа 2011

Вы звоните RedirectToAction. В результате возвращается код состояния http 302, указывающий на URL-адрес действия Home на контроллере индекса.

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

return RedirectToAction("Index", "Home", new { ErrCode = 3 });

Обновление: вы также можете использовать TempData вместо ViewData. Это коллекция, которая сохраняет данные до следующего запроса (и только до следующего запроса).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...