1

「HttpResponseExpection」を使用して例外メッセージをスローしています。例外として、エラーの内容と ReasonPhrase を表示しようとしましたが、エラー ステータス コードしか表示されません。メッセージを表示するために使用しているコードを投稿しました。

                var resp = new HttpResponseMessage(HttpStatusCode.NotFound)
                {
                    Content = new StringContent(string.Format("No Product with ID = {0}", id)),
                    ReasonPhrase = "Product ID Not Found",
                    StatusCode = HttpStatusCode.Forbidden

                }; throw new HttpResponseException(resp);

index.cshtml からのコード

    function find() {

        clearStatus();

        var id = $('#productId').val();

        $.getJSON(API_URL + id,
        function (data) {
            viewModel.Name(data.Name);
            viewModel.Category(data.Category);
            viewModel.Price(data.Price);
        })
    .fail(
        function (jqXHR, textStatus, err) {
            $('#status').html('Error: ' + err );
        });

    }

事前に感謝します。

4

1 に答える 1

1

オブジェクトのresponseTextプロパティにはjqXHR、エラー メッセージ (Contentプロパティ)が含まれます。

.fail(function (jqXHR, textStatus, err) {
    alert(jqXHR.responseText);
});

ReasonPhraseプロパティを取得する場合は、次のerrパラメーターを使用します。

.fail(function (jqXHR, textStatus, err) {
    alert(err);
});

また、API コントローラーHttpStatusCode.NotFoundで 403 ( ) ではなく、適切なステータス コード 404 ( ) を使用していることを確認してください。HttpStatusCode.Forbidden

var resp = new HttpResponseMessage(HttpStatusCode.NotFound)
{
    Content = new StringContent(string.Format("No Product with ID = {0}", id)),
    ReasonPhrase = "Product ID Not Found",
    StatusCode = HttpStatusCode.Forbidden
}; 
throw new HttpResponseException(resp);
于 2012-10-08T07:14:41.503 に答える