我创建了一个局部视图,在其中我正在使用AJAx.BeginForm。在Post Edit Action Method中,我正在添加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中。请建议
我是否需要重定向主视图而不是部分视图,或者我缺少某些内容
答案 0 :(得分:0)
您似乎使用的是TempData而不是not quite the same的ViewData。您还提到您使用Ajax.BeginForm
来调用此控制器操作。由于这是一个AJAX调用,因此请确保在AjaxOptions中指定了UpdateTargetId
,以便将生成的部分注入到DOM的某处:
@using (Html.BeginForm(new AjaxOptions { UpdateTargetId = "foo" }))
{
...
}
<div id="foo"></div>