1

私はモデルを持っています

[Validator(typeof(ContractValidator))]
[Route("/contracts", "POST")]
public class Contract
{
    public int ContractID{get; set;}
    public string ContractNumber{get;set;}
}

上記のモデルの検証クラスもあります。

public class ContractValidator : AbstractValidator<Contract>
{
    public ContractValidator()
    {
        RuleFor(x => x.ContractNumber).Length(0, 10);
    }
}

「GET」リクエストをマップするクラスもあります。

[Route("/contracts/{ContractID}", "GET")]
public class GetContract
{
   public int ContractID { get; set; }
}

...そしてサービス:

public class ContractService : ServiceStack.ServiceInterface.Service
{
    public object Get(GetContract request)
    {
        IContractRepository repository = new ContractRepository();
        return repository.GetById(request.ContractID);
    }

public object Post(Contract request)
    {
        IContractRepository repository = new ContractRepository();
        repository.Save(request);
        return request; 
    }

}

Razorビューで、私が持っているコントラクトオブジェクトを編集します

@inherits ViewPage 。. .

しかし問題は、保存しようとすると次のエラーが発生し、モデルの検証エラーが発生することです。

タイプ「ServiceStack.ServiceInterface.ServiceModel.ErrorResponse」のオブジェクトをタイプ「DTO.Contract」にキャストできません

誰かがこれを処理する方法を教えてもらえますか?

ありがとう、

エルミアス。

4

1 に答える 1

1

この問題の修正をコミットしたばかりなので、HEAD の次のバージョンの ServiceStack でこのエラーが発生することはもうありません (または今週末の NuGet で)。

新しい動作は、すべての例外がModelErrorRazor ビューのプロパティを設定することです。はnull になりますが、ビュー ページ@Modelのプロパティを参照することで、入力されたエラーにアクセスできます。base.ResponseStatus

于 2012-11-14T14:28:29.710 に答える