Ajax HTTPPost 后 MVC 刷新局部视图

MVC Refresh Partial View after Ajax HTTPPost

我正在尝试在 Ajax HttpPost 之后更新部分视图。

这是局部视图的控制器:

    public PartialViewResult BrtMagazzino(DataMagazzino m)
    {
        if (Session["Data"] != null)
        {
            DateToView dt = (DateToView)Session["Data"];
            ViewBag.comm = dt.commSelected.COMMITTENTE;
            ViewBag.corriere = "Bartolini";
        }
        return PartialView(m);
    }

这是包含部分视图的代码:

<div id="view-Bartolini">
   @{
      Html.RenderAction("BartoliniMagazzino", "Partial", new { m = item });
    }
</div>

这是按钮的代码:

<input class='btn btn-info btnBordero' type='button' value='Salva Borderò' data-corriere="@ViewBag.corriere" data-magazzino="@Model.NomeMagazzino" data-committente="@ViewBag.comm" />

这是点击此按钮的代码:

$(function () {
    $('.btnBordero').on('click', function (event) {
        event.preventDefault();
        _self = $(this);
        var uf = new FormData();
        uf.append('corriere', _self.data('corriere'));
        uf.append('magazzino', _self.data('magazzino'));
        uf.append('committente', _self.data('committente'));
        var url = "/Partial/SaveBordero";
        $.ajax({
            type: "POST",
            url: url,
            contentType: false,
            processData: false,
            data: uf,
            error: function (ts) { alert(ts.responseText) 
            },
            success: function (result) {
                $("#view-Bartolini").html(result);
            }
        });
    });
});

SaveBordero 函数有这个代码:

[HttpPost]
public ActionResult SaveBordero(FormCollection form)
{
   DataMagazzino dt = new DataMagazzino();
   // Do something
   return PartialView("BartoliniMagazzino", new { m = dt });
}

一切正常,但是当我在 SaveBordero 函数中调用 return PartialView 时,ajax 调用总是进入错误部分。不知道怎么去成功更新局部视图

问题出在这一行:return PartialView("BartoliniMagazzino", new { m = dt });

如果我调用一个新的 m 模型,这是一个匿名类型,系统不会重新识别它。

我已经解决了它只是写:return PartialView("BartoliniMagazzino", dt);

感谢大家