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帖子调用action方法。这是动作方法
[HttpPost]
public PartialViewResult Popup()
{
return PartialView("~/Views/Shared/Project/Popup.cshtml");
}
请告诉我上述代码中的错误。
答案 0 :(得分:3)
为什么不调用action方法可能有不同的原因:
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>
现在,如果你在控制器动作中放置一个断点,通常应该被击中。我建议你使用一个javascript调试工具,如FireBug,它将帮助你看到任何可能的javascript错误,并查看在AJAX请求期间发送的确切请求/响应。
您还会注意到我已删除async: false
开关,因为这会在执行此请求期间对服务器进行同步调用,从而冻结Web浏览器,因此您不再使用AJAX。