AJAX表单重定向,但应该更新目标

本文关键字:更新 目标 表单 重定向 AJAX | 更新日期: 2023-09-27 18:18:43

我在Razor中定义了一个AJAX表单,如下所示:

using (Ajax.BeginForm("SaveProfile", "Settings",
    new AjaxOptions
    {
        HttpMethod = "Post",
        InsertionMode = InsertionMode.Replace,
        UpdateTargetId = "result"
    }))
{
    ...
    ...

表单的其余部分是非常基本的。几个文本框和一个提交按钮。

这是控制器的动作:

[HttpGet]
public ActionResult SaveProfile(int AccountID, string DisplayName, string Email)
{
    string message = "Changes saved successfully.";
    var user = db.LoginUsers
        .Where(m => m.ID == AccountID)
        .First();
    if (user != null)
    {
        user.DisplayName = DisplayName;
        user.Email = Email;
        db.SaveChanges();
    }
    else
        message = "Error. Changes were not saved.";
    return PartialView("_Saved", message);
}

这是局部视图,"_Saved":

@model string
@Model

正如你所看到的,这是一个非常基本的过程。唯一的问题是,它重定向页面,而不是更新我的目标。我就是不知道哪里出错了。

AJAX表单重定向,但应该更新目标

显然我的jqueryval包没有被渲染在我的_Layout。由于这是MVC的默认特性,我认为它应该这样做。事实并非如此。

小心哪些bundle在你的布局中被渲染!