Ajax.BeginForm TempData не выводится после публикации - PullRequest
2 голосов
/ 31 марта 2012

Я не нашел другого вопроса, который бы ответил на этот вопрос напрямую. У меня есть Ajax.BeginForm в моем представлении, например,

@using (Ajax.BeginForm("Action", "Controller", new AjaxOptions())){
    //Stuff
    <div id="aaaa"> @TempData["Key"] </div>
}

В методе действия я устанавливаю значение сообщения в TempData, которое я хочу вывести.

TempData["Key"] = "Value";
return View("View");

Когда я отлаживаю его, я вижу, что он успешно добавляет значение в TempData. Я также вижу, что он по-прежнему имеет значение, когда он начинает рендеринг представления снова. Но по причинам, которые я не могу объяснить, он просто выводит как

<div id="aaaa"> </div>

Почему не выводится значение, если я знаю, что оно есть?

То же самое относится к свойствам ViewData, ViewBag и Model

1 Ответ

0 голосов
/ 01 апреля 2012

Вы, кажется, используете TempData, а не ViewData, что не совсем то же самое. Также вы упомянули, что вы используете Ajax.BeginForm для вызова этого действия контроллера. Поскольку это AJAX-вызов, убедитесь, что вы указали UpdateTargetId в ваших AjaxOptions, чтобы результирующий частичный фрагмент был вставлен куда-то в DOM

.

вот некоторые ссылки http://davidhayden.com/blog/dave/archive/2009/05/19/ASPNETMVCAjaxBeginForm.aspx

ViewData не отображается в Ajax.BeginForm

...