gpt4 book ai didi

asp.net-mvc-3 - Jquery Ajax Post 没有调用操作方法

转载 作者:行者123 更新时间:2023-12-01 03:49:28 25 4
gpt4 key购买 nike

function CreateModalDialogWindow(urlPath) {
$.ajax({
url: '@Url.Action("Popup","Project")',
type: 'POST',
async: false,
success: function (data) {
debugger;
$('#dialog').html(data).dialog({
autoOpen: true,
width: 400,
resizable: false,
modal: true
});
},
error: function(){
alert('Error!');
}
});

return false;

}

我想使用ajax post调用一个action方法。这是操作方法

 [HttpPost]
public PartialViewResult Popup()
{
return PartialView("~/Views/Shared/Project/Popup.cshtml");
}

请告诉我上面的代码有什么问题。

最佳答案

未调用操作方法可能有不同的原因:

  • 您有一些 JavaScript 错误
  • 您从未调用过CreateModalDialogWindow函数
  • 您在单击链接或表单提交时调用了 CreateModalDialogWindow,但您忘记通过返回 false 来取消此按钮的默认操作。

因此,首先在准备好的文档中调用此代码,看看它是否有效:

<script type="text/javascript">
$(function() {
$.ajax({
url: '@Url.Action("Popup", "Project")',
type: 'POST',
success: function (data) {
$('#dialog').html(data).dialog({
autoOpen: true,
width: 400,
resizable: false,
modal: true
});
}
});
});
</script>

现在,如果您在 Controller 操作中放置断点,通常应该会命中它。我建议您使用 JavaScript 调试工具,例如 FireBug,它将帮助您查看任何可能的 JavaScript 错误,并查看 AJAX 请求期间发送的确切请求/响应。

您还会注意到,我已删除了 async: false 开关,因为这会在执行此请求期间同步调用服务器并卡住 Web 浏览器,因此您不再执行 AJAX。

关于asp.net-mvc-3 - Jquery Ajax Post 没有调用操作方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10241503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com