Ajax.BeginForm() 不会回发到控制器
Ajax.BeginForm() not posting back to the controller
我正在尝试为部分中保存的简单列表进行分页以工作,但帖子操作结果从未被调用。
在调试过程中,我可以看到我的按钮在Chrome调试器中被激活,所以我认为问题出在$('form')
,但我不确定为什么。
同样通过Chrome控制台,我可以看到单击下一个/上一个时页码计算正确。
我在控制器中的 [HttpPost]
操作方法上有一个断点,它永远不会被调用。
问题不在于后端的 C#,而在于为什么表单一开始没有发布。
我在 Ajax 和 POST 上哪里出了问题?
指数:
@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>
它没有回发的原因是因为它永远不会$('form')
- 这应该可以正常工作。
在下面$('#CurrentPage').val(current);
添加return true;
- 你的 JavaScript 函数if (CalculateAndSetPage("Previous/next"))
询问一个是/否(布尔)问题,而你当前的脚本没有回答这个问题。它只有在为真的情况下才会起作用。
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 从控制器返回后Ajax启动事件激发
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 如何在单击复选框后调用控制器方法
- 在控制器和数据对象之间同步数据
- 将Javascript数组发送到控制器ASP.NET MVC
- 角度控制器结构
- 如何在Jquery中发布后将值从视图返回到控制器
- 将值从html传递到AngularJS控制器
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- 从控制器继承了隔离的作用域以生成可重用的指令
- Flash Uploadify在调用我的MVC控制器时没有保留会话/授权
- 为什么不't我的变量在我的控制器中填充后在我的视图中呈现
- Nodejs API控制器,用于在API之间切换
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 将不在模型中的数据返回到mvc控制器
- 未激发路由的控制器属性上的观察者
- 错误405:向Java控制器(Ajax)发送JSON时找不到POST方法
- Ajax.BeginForm() 不会回发到控制器