Javascript Ajax.BeginForm()未发回控制器
我正在尝试为一个包含在partial to work中的简单列表进行分页,但从未调用post-actionresult 在调试期间,我可以看到我的按钮在Chrome调试器中被激活,因此我认为问题出在Javascript Ajax.BeginForm()未发回控制器,javascript,jquery,ajax,asp.net-mvc,asp.net-ajax,Javascript,Jquery,Ajax,Asp.net Mvc,Asp.net Ajax,我正在尝试为一个包含在partial to work中的简单列表进行分页,但从未调用post-actionresult 在调试期间,我可以看到我的按钮在Chrome调试器中被激活,因此我认为问题出在$('form')上,但我不确定原因 另外,通过Chrome控制台,我可以看到在单击next/previous时页码计算正确 我在控制器中的[HttpPost]操作方法上有一个断点,它从未被调用 问题不在于后端的C#,而在于为什么表单没有首先发布 我在Ajax和POST-back方面哪里出了问题 索引
$('form')
上,但我不确定原因
另外,通过Chrome控制台,我可以看到在单击next/previous时页码计算正确
我在控制器中的[HttpPost]
操作方法上有一个断点,它从未被调用
问题不在于后端的C#,而在于为什么表单没有首先发布
我在Ajax和POST-back方面哪里出了问题
索引:
@model ViewModel
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Things</h2>
<div>
@Html.ActionLink("Create", "Create", "Things", null, new { @class = "modal-link btn btn-sm" })
<div class="Table">
<div id="thingsList">
@Html.Partial("List", Model.ThingList)
</div>
@using (Ajax.BeginForm("Index", "Things", FormMethod.Post, new AjaxOptions { HttpMethod = "POST", InsertionMode = InsertionMode.Replace, UpdateTargetId = "thingsList" }))
{
<input type="hidden" id="CurrentPage" value="@ViewBag.CurrentPage" />
<input type="hidden" id="PreviousPage" value="@ViewBag.PreviousPage" />
}
<input type="button" onclick="javascript: PrevBtnClick();" class="btn btn-primary" id="PrevBtn" value="Previous" />
<input type="button" onclick="javascript: NextBtnClick();" class="btn btn-primary" id="NextBtn" value="Next" />
</div>
</div>
<script type="text/javascript">
function PrevBtnClick() {
if (CalculateAndSetPage("Previous")) {
$('form').submit();
}
}
function NextBtnClick() {
if (CalculateAndSetPage("Next")) {
$('form').submit();
}
}
function CalculateAndSetPage(movingType) {
var current = parseInt($('#CurrentPage').val());
if (movingType == 'Previous') {
current--;
}
else if (movingType == 'Next') {
current++;
}
else {
alert('Something has gone wrong');
}
$('#CurrentPage').val(current);
}
</script>
@model视图模型
@{
Layout=“~/Views/Shared/_Layout.cshtml”;
}
东西
@ActionLink(“Create”、“Create”、“Things”、null、new{@class=“modal link btn btn sm”})
@Html.Partial(“List”,Model.ThingList)
@使用(Ajax.BeginForm(“Index”,“Things”,FormMethod.Post,new-AjaxOptions{HttpMethod=“Post”,InsertionMode=InsertionMode.Replace,UpdateTargetId=“thingsList”}))
{
}
函数prevbtclick(){
如果(CalculateAndSetPage(“上一页”)){
$('form').submit();
}
}
函数NextBtnClick(){
如果(CalculateAndSetPage(“下一页”)){
$('form').submit();
}
}
函数CalculateAndSetPage(移动类型){
var current=parseInt($('#CurrentPage').val();
if(movingType=='Previous'){
当前--;
}
else if(movingType=='Next'){
电流++;
}
否则{
警惕(“出了什么事”);
}
$('#CurrentPage').val(当前);
}
它没有发回的原因是它从来没有到达$('form')
-这应该可以正常工作
在$('#CurrentPage').val(当前)下面
add返回true
-如果(CalculateAndSetPage(“Previous/next”)的javascript函数询问的是/否(布尔值)问题,而当前脚本没有回答。它只有在正确的情况下才会起作用