我尝试在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);
}
这是包含partial:
的视图的代码<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函数中调用返回的PartialView时,ajax调用总是进入错误部分。我不知道如何成功并更新局部视图
答案 0 :(得分:0)
问题出在这一行:return PartialView("BartoliniMagazzino", new { m = dt });
如果我调用一个新的模型,这是一个匿名类型,系统不会重新调整它。
我只是写了:return PartialView("BartoliniMagazzino", dt);
感谢所有