0

JavaScript メソッドがありますdotrack()UpdateJsonAJAX を介して JavaScript からアクションを呼び出しています。JSON データ型を渡していますが、メソッドは を返しtrue/falseます。実行後、システムは成功ブロックになりますが、戻り値は ではありませんtrue/false

私の質問は、システムがアクションを適切に呼び出しているかどうかです。

function doTrack() {
    var D = { 'pageUrl': PageURL, 'linkUrl': linkURL, 'linkName': linkText, 'linkType': ControlType, 'leadId': LeadID, 'userType': UserType, 'portalId': PortalID, 'languageId': LanguageID, 'countryId': CountryID };
    D = JSON.stringify(D);

    $.ajax({
        type: "POST",
        url: "portal/UpdateJson",
        data: D,
        contentType: "application/json; charset=utf-8",
       success: function (result) {
        if(result == true)
            alert("Success");
        else
            alert(result);

        },
        error: function (xhr, ajaxOptions, thrownError) {
            alert(thrownError + " :: " + ajaxOptions);
            //alert('unable to complete ajax request.');
        }
    });
}

コントローラーはポータルで、アクションは UpdateJson です。

[HttpPost]
public ActionResult UpdateJson(string pageUrl, string linkUrl, string linkName, string linkType, string leadId, string userType, string portalId, string languageId, string countryId)
{
    //do stuff
    return Json(true);
}

助けてください。

4

1 に答える 1

1

あなたの ajax コードは正常に動作しています。

resultの代わりに変数を直接使用する必要がありますresult.val

success: function (result) {
    exists = (result);
    alert(exists);
}

プロパティを使用する場合valは、val プロパティも持つオブジェクトを返す必要があります。

return Json(new { val = true });

またUrl.Action、間違った URL を防止するためにも使用する必要があります。

url: "@Url.Action("UpdateJson", "portal")"
于 2014-08-26T07:42:44.723 に答える