0

jQuery.post()構文に問題が1つあります。

私はコントローラーを持っており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('@Url.Action("TestPost", "Example")', {fileId : fileGuid} , function () {
        alert("success");
    });

そしてそれは動作します。:)

于 2012-10-18T10:00:26.127 に答える
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');
});

それはうまくいくはずです

于 2012-10-18T09:36:03.890 に答える