0

我有一个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

4 回答 4

1

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

var jqxhr = $.post("example.php", function() {
   alert("success");
})
.success(function() { alert("second success"); })
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });
于 2012-10-18T09:30:04.487 回答
1

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

于 2012-10-18T09:33:14.677 回答
0

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

$.post("/Example...

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

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

编辑:

它没有找到您的操作,因为您将参数指定为 Guid。如果将其更改为字符串:

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

并运行:

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

它应该工作

于 2012-10-18T09:36:03.890 回答
0

好的,我找到了这种方式:

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

它有效。:)

于 2012-10-18T10:00:26.127 回答