ViewData не отображается в Ajax.BeginForm - PullRequest
1 голос
/ 09 ноября 2011

Я создал частичное представление, и внутри него я использую AJAx.BeginForm.В методе действия после редактирования я добавляю VIEWDATA вот так

        if (ModelState.IsValid)
        {
            service.SaveAccount(account);
            TempData["message"] = "Account has been updated successfully!";

            AccountInfo accountInfo = new AccountInfo();
            accountInfo.AccountStatuses = service.GetAccountStatuses();
            accountInfo.AccountTypes = service.GetAccountTypes();
            accountInfo.CreditTerms = service.GetCreditTerms();
            return View("DisputeSubscriber", accountInfo);

        }
        else
        {
            return PartialView("_UpdateAccountDetails", account);
        }

и перенаправляю в тот же частичный вид.При частичном просмотре я добавил вот так:

 @if (TempData["message"] != null)
                    {
                        <div class="Message">
                           I am here.
                            @TempData["message"]
                        </div>
                    }

но это сообщение не отображается.это сообщение также внутри AJAX.BeginForm.Пожалуйста, предложите

Нужно ли перенаправлять основной вид вместо частичного, или мне что-то не хватает

1 Ответ

0 голосов
/ 09 ноября 2011

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

@using (Html.BeginForm(new AjaxOptions { UpdateTargetId = "foo" }))
{
    ...
}

<div id="foo"></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...