1

これはコードの一部です

<script type="text/javascript" src="~/scripts/jquery.unobtrusive-ajax.js"></script>
Ajax.ActionLink("Yes", "Delete", "Notes", new { id = item.NoteId }, new AjaxOptions { HttpMethod = "POST", OnComplete = "javascript:void(0);" }, new { id = item.NoteId, @class = "yes" });

クリックすると、次のアクションが呼び出されるはずです。

    [HttpPost]
    public bool Delete(int id)
    {
        Notes notes = db.Notes.Find(id);
        db.Notes.Remove(notes);
        db.SaveChanges();

        return true;
    }

そして、そうです-メモは削除されます。しかし、メソッドは何らかの理由でさらに 5 回または 8 回呼び出されます。

 POST http://localhost:57904/Notes/Delete/41 500 (Internal Server Error) jquery-1.8.2.min.js:2
 POST http://localhost:57904/Notes/Delete/41 500 (Internal Server Error) jquery-1.8.2.js:8416
 POST http://localhost:57904/Notes/Delete/41 500 (Internal Server Error) jquery-1.8.2.min.js:2
 POST http://localhost:57904/Notes/Delete/41 500 (Internal Server Error) jquery-1.8.2.js:8416

余分な呼び出しの原因は何ですか?

4

2 に答える 2

1

この行が原因でした:

<script type="text/javascript" src="~/scripts/jquery.unobtrusive-ajax.js"></script>

私は実際にそれを「foreach」ループの中に入れたので、複数回含まれていました。そのループの外に移動すると、問題は修正されました。

自分への注意: 含めるのは 1 回だけです。

于 2013-11-06T18:56:31.673 に答える