2012-11-12 3 views
1

나는 나는 또한 위의 모델에 대한 검증 클래스가servicestack 검증

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

모델을 가지고있다.

[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; 
    } 

} 내 면도기에서 지금

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

나는 또한 'GET'요청을 매핑 할 클래스가 계약 객체를 편집하는보기 나는 가지고있다

@ Viewherin View . . .

그러나 문제는 내가 저장하려고하고 모델 유효성 검사 오류가있을 때 다음과 같은 오류를 받고 있어요입니다 :

'를 입력하는 유형'ServiceStack.ServiceInterface.ServiceModel.ErrorResponse '의 개체를 캐스팅 할 수 없습니다 DTO.Contract '

누군가 처리해 줄 수 있습니까?

감사합니다,

Ermias.

답변

1

나는 단지 committed a fix for this 일 뿐이므로 지금 HEAD의 ServiceStack의 다음 버전 (또는 이번 주말 NuGet)에서이 오류가 발생하지 않아야합니다.

모든 예외는 면도기 뷰에서 ModelError 속성을 채 웁니다. @Model은 null이지만보기 페이지의 base.ResponseStatus 속성을보고 입력 한 오류에 액세스 할 수 있습니다.

+0

대단히 감사합니다. –