【发布时间】:2020-11-11 07:11:44
【问题描述】:
我正在尝试加载部分视图并通过 POST Ajax 对其进行更改,但模型不会在视图中更新。
这就是我加载部分内容的方式:
@{
Html.RenderAction("UltimeNovità", "User");
}
我在 UserController 中的操作是:
public ActionResult UltimeNovità()
{
_UltimeNovitàViewModel model = new _UltimeNovitàViewModel();
model.NumeroPagina = 1;
return PartialView("~/Views/User/Partial/_UltimeNovità.cshtml",model);
}
这里是部分:
@model Mine.Models._UltimeNovitàViewModel
<script>
$(document).ready(function () {
});
function nextPage() {
$.ajax({
url: '@Url.Action("UltimeNovitàPaginaSuccessiva")',
type: 'POST',
data: { pagina: @Model.NumeroPagina },
success: function (data) {
$('#x').text('@Model.NumeroPagina');
},
error: function (xhr) {
alert('error');
}
});
}
</script>
<p id="x">1</p>
最后,同一控制器中的 POST 动作:
[HttpPost]
public ActionResult UltimeNovitàPaginaSuccessiva(int pagina)
{
_UltimeNovitàViewModel model = new _UltimeNovitàViewModel();
ModelState.Clear();
model.NumeroPagina = pagina + 1;
model.UltimeNovità = UserControllerMethods.GetUltimeNovità(model.NumeroPagina);
return PartialView("~/Views/User/Partial/_UltimeNovità.cshtml", model);
}
我的问题是:为什么在 POST 操作之后 @Model.NumeroPagina 始终为 1?我希望每次按下使用 ajax 调用函数的按钮时,@Model.NumeroPagina 都会增加 1,并显示在我的段落中。
该按钮位于包含部分的主页中,总是点击操作,在调试期间我可以看到 model.NumeroPagina 为 2,但 view 始终为 1。
【问题讨论】:
标签: javascript c# ajax asp.net-mvc model-view-controller