我有一个模特
[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”
有人可以告诉我如何处理这个问题吗?
谢谢,
Ermias。
答案 0 :(得分:1)
我刚刚committed a fix for this所以你现在不应该再在HEAD中使用下一版本的ServiceStack(或者本周末在NuGet上)出现此错误。
新行为是任何Exception将填充Razor View上的ModelError
属性。 @Model
将为null,但您可以通过查看View页面上的base.ResponseStatus
属性来访问键入的错误。