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 视图上的属性。@Model将为空,但您可以通过查看视图页面上的属性来访问键入的错误base.ResponseStatus

于 2012-11-14T14:28:29.710 回答