Asp.net mvc 3 Jquery Ajax Post未调用操作方法
} 我想使用ajax post调用actionmethod。这里是行动方法Asp.net mvc 3 Jquery Ajax Post未调用操作方法,asp.net-mvc-3,jquery,Asp.net Mvc 3,Jquery,} 我想使用ajax post调用actionmethod。这里是行动方法 function CreateModalDialogWindow(urlPath) { $.ajax({ url: '@Url.Action("Popup","Project")', type: 'POST', async: false, success: function (data) { debugger; $('#dialog').html(data)
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;
请让我知道上面代码中的错误。没有调用操作方法可能有不同的原因:
- 您有一些javascript错误
- 您从不调用
函数CreateModalDialogWindow
- 在单击链接或表单提交时调用
,但由于返回false,您忘记取消此按钮的默认操作CreateModalDialogWindow
[HttpPost]
public PartialViewResult Popup()
{
return PartialView("~/Views/Shared/Project/Popup.cshtml");
}
$(函数(){
$.ajax({
url:'@url.Action(“弹出”、“项目”),
键入:“POST”,
成功:功能(数据){
$('#dialog').html(数据).dialog({
自动打开:对,
宽度:400,
可调整大小:false,
莫代尔:对
});
}
});
});
现在,如果在控制器操作中放置断点,通常应该命中该断点。我建议您使用诸如FireBug之类的javascript调试工具,它将帮助您查看任何可能的javascript错误,并查看AJAX请求期间发送的确切请求/响应
您还将注意到,我已删除了
async:false
开关,因为这会在执行此请求期间对服务器进行同步调用,从而冻结web浏览器,因此您不再使用AJAX;在成功函数中?可能您也不想禁用cache:cache:falseDimitrov,即使我将此代码放在document.ready()中,也不会调用操作方法。但同样的代码在示例app.Dimitrov中运行良好,在firebug中调试后,我可以注意到它抛出了一个类似“405 method not allowed”的错误。我是否在url部分遗漏了任何内容。@Preben Huybrechts:谢谢Huybrechts。但它仍然不起作用。在firebug中,我可以看到它抛出了一个错误“405方法不允许”,谢谢大家,ajax帖子中的url是错误的。我已经改正了,现在很好用。谢谢:)
<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>