【问题标题】:ViewData not shown in Ajax.BeginFormViewData 未显示在 Ajax.BeginForm 中
【发布时间】:2011-11-09 06:07:24
【问题描述】:

我创建了一个局部视图,在其中我使用 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 中。请推荐

我需要重定向主视图而不是部分视图还是我缺少某些东西

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 razor


    【解决方案1】:

    您似乎使用的是 TempData 而不是 not quite the same 的 ViewData。您还提到您正在使用Ajax.BeginForm 来调用此控制器操作。由于这是一个 AJAX 调用,请确保您在 AjaxOptions 中指定了 UpdateTargetId,以便将生成的部分注入到 DOM 的某处:

    @using (Html.BeginForm(new AjaxOptions { UpdateTargetId = "foo" }))
    {
        ...
    }
    
    <div id="foo"></div>
    

    【讨论】:

    • 我也使用了 UpdateTargetId,但它没有显示 div。我看到该记录已更新。我使用了警报,它显示错误警报。 "@using (Ajax.BeginForm("UpdateAccountDetails", new AjaxOptions { OnSuccess = "alert('done')", OnFailure = "alert('Error');" }))"
    • @DotnetSparrow,当您使用 UpdateTargetId 后元素是否更新了?我不是在谈论 TempData 问题。在部分中放入一些虚拟数据并确保它首先更新。
    • 你能举个例子来说明如何更新targetid >?我只是将 updateTargetId 设置为我想要更新的 div
    • @DotnetSparrow,我的回答有一个例子。
    • 在您的示例中,将什么值设置为 foo div ?
    猜你喜欢
    • 2023-03-07
    • 1970-01-01
    • 2021-02-04
    • 1970-01-01
    • 2013-07-15
    • 2019-09-23
    • 1970-01-01
    • 2014-03-15
    • 1970-01-01
    相关资源
    最近更新 更多