1

ServiceStackのOnDeleteで呼び出されますが、値は空です。

私は値をチェックしようとしました、例えば

ProductRequestResponse rx = Client.Send<ProductRequestResponse>(
            "DELETE", "http://localhost:2012/api/product_request", 
            new ProductRequest { Id = 7 });    

ServiceStack側では、IDは0のみです。これがStackServiceOnDeleteメソッドです。

public override object OnDelete(ProductRequest request)
{
    throw new Exception("Id: " + request.Id.ToString());
}

これが私のオブジェクトがコミュニケーションに使用するものです

public class ProductRequest
{
    public int Id { get; set; }
    public ProductDto ProductDto { get; set; }
}

public class ProductRequestResponse
{
    public ProductDto ProductDto { get; set; }        

    public IEnumerable<ProductDto> ProductDtos { get; set; }

    public ServiceStack.ServiceInterface.ServiceModel.ResponseStatus ResponseStatus { get; set; } //Where Exceptions get auto-serialized
}

何が欠けていますか、StackServiceがOnDeleteメソッドから値を受け取らないのはなぜですか?

4

1 に答える 1

1

まず、POSTを実行するのは次の場合のみであるため、 Deleteメソッドを使用する必要があります。Send

したがって、次のようになります。

restClient.Delete<TransactionLogResponse>("/transactionlog");

DeleteがRequestDTOを予期しない理由は、DELETEHttp動詞が要求本文を受け入れないためです。

パラメータを追加する場合は、ルートパスまたはクエリ文字列にこれを追加する必要があります。例:

restClient.Delete<TransactionLogResponse>("/transactionlog/1?Arg1=a&Arg2=b");
于 2012-06-21T08:11:59.893 に答える