1

コントローラーへの ajax 呼び出しがあり、それが true または false を返すサービスを呼び出します。コントローラーからビューに戻るときに、これが常に成功関数をトリガーする理由を理解できないようです。

コントローラ

[HttpGet]
public JsonResult TagUnit(int id, string selectedItem)
{
    try
    {
        var result = UnitClient.TagUnit(id, selectedItem);
        if (!result)
        {
            throw new InvalidOperationException();
        }
        return Json(new {success = true}, JsonRequestBehavior.AllowGet);
    }
    catch (Exception e)
    {
        return Json(new {success = false}, JsonRequestBehavior.AllowGet);
    }
}

Cshtml - Javascript - Ajax

 .on("select2-selecting", function (e) {
            var url = '@Url.Content("~/UnitDetails/TagUnit/" + Model.ViewUnitContract.Id)';
            var id = e.val;
            var tagName = e.object.text;
            console.log(id + " : " + tagName);

            $.ajax({
                url: url,
                data: { selectedItem: tagName },
                type: 'GET',
                dataType: 'json',
                success: function () {
                    alert('Success');
                },
                error: function () {
                    alert('Error');
                }
            });
        }).select2('val', ['1', '2']);

ここで何が欠けていますか?

4

3 に答える 3

0

あなたの質問を正しく理解しているかどうかわかりません。

リクエストが成功すると、Ajax のsuccess関数が実行されます。リクエストが失敗した場合、エラー関数が実行されます。サーバーが成功関数内で返すものを確認する必要があります。

http://api.jquery.com/jQuery.ajax/

于 2013-11-01T08:17:50.083 に答える