1

私はaspnetmvc4 web apiを学んでおり、apicontrollersでオブジェクトを返すだけで実装が非常に簡単であることがわかりました。

ただし、bool、int、stringなどの値型を返そうとすると、JSON形式ではまったく返されません。(Fiddlerでは、rawおよびwebviewで「true / false」の結果が表示されましたが、JSONのコンテンツはまったく表示されませんでした。

誰でもこれについて私を助けることができますか?

ありがとう。

TestApiControllerのサンプルコード:

public bool IsAuthenticated(string username)
{
    return false;
}

jQueryを使用するためのサンプルコード:

function isAuthenticated(string username){
        $.getJSON(OEliteAPIs.ApiUrl + "/api/membership/isauthenticated?username="+username,
            function (data) {
                alert(data);
                if (data)
                    return true;
                else
                    return false;
            });
}

注:上記のjqueryは、EMPTYコンテンツが返されたため、何も返しません。ただし、フィドラーでチェックすると、実際にはWebビューに「false」が返されていることがわかります。

乾杯。

4

1 に答える 1

0

コールバック関数が呼び出される前に、戻りデータはjquery parseJSONメソッドに渡されます。このメソッドは、データがJSON形式であることを想定しています。jQueryは応答データを無視し、応答が正しくフォーマットされていない場合はnullを返します。2つのオプションがあります。ブール値をクラスまたは匿名型で返すようにラップして、WebAPIがJSONオブジェクトを返すようにします。

return new { isAuthentication = result }

または、適切にフォーマットされたJSON応答を返さないため、jQueryからgetJSONを使用しないでください。代わりに$.getを使用するだけかもしれません。

以下は、jQueryドキュメントの引用です。

Important: As of jQuery 1.4, if the JSON file contains a syntax error, the request will usually fail silently. Avoid frequent hand-editing of JSON data for this reason. JSON is a data-interchange format with syntax rules that are stricter than those of JavaScript's object literal notation. For example, all strings represented in JSON, whether they are properties or values, must be enclosed in double-quotes. For details on the JSON format, see http://json.org/.

于 2012-12-10T05:33:05.500 に答える