带有MVC的jQuery.post

时间:2012-10-18 09:26:53

标签: jquery asp.net-mvc post

我的jQuery.post()语法有一个问题。

我有控制器ExampleController.cs,但有一个动作:

public ActionResult TestPost(Guid fileId) { //do something }

和视图Example.cshtml,在这里我尝试加载此操作:

function foo(fileGuid) {      
    $.post("Example/TestPost?fileId=" + fileGuid, function () {
        alert("success");
    });
}

但是没有警报,我认为这种语法有问题。谁能帮我吗。感谢。

4 个答案:

答案 0 :(得分:1)

尝试添加以下3个回调,看看是否收到错误提醒

var jqxhr = $.post("example.php", function() {
   alert("success");
})
.success(function() { alert("second success"); })
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });

答案 1 :(得分:1)

您还应该检查Chrome控制台中的“网络”选项,看看服务器端是否有任何错误。这也可能是功能可能失败的原因。

答案 2 :(得分:0)

我认为您需要在您的位置添加反斜杠:

$.post("/Example...

如果这不起作用,请尝试使用帖子注释注释您的方法:

[HttpPost]
public ActionResult TestPost(Guid fileId) { //do something }

修改

由于您将参数指定为Guid,因此无法找到您的操作。如果将其更改为字符串:

 public ActionResult TestPost(string fileId)
 {
       return View();
 }

并运行:

$.post('/Example/TestPost?fileId=123', function () {
  alert('here');
});

应该有效

答案 3 :(得分:0)

好的,我发现了这种方式:

$.post('@Url.Action("TestPost", "Example")', {fileId : fileGuid} , function () {
        alert("success");
    });

它有效。 :)