2014-04-05 3 views
0

모델에서 컨트롤러로 메시지를 보낼 수 있는지 확인하고 싶습니다. 사용자가 새 자동차를 추가 그래서 때 모델에서 컨트롤러/오류 메시지보기

그래서 나는 모델을

public class Car() 
{ 
    public int Id { get; set; } 
    public string Make { get; set; } 
} 

을 가지고, 나는 그것이 유창함 API 또는 [필수] 주석을 사용하여 필요한 만들 수 있습니다.

하지만 거기에 특정 문자가 있는지 확인하고 싶다면 거기에 백분율 기호를 넣지 않으려 고합니다. (거기에 자동차가 없으면?!). 나는 보통 컨트롤러에 오류 로직을 배치

public class Car() 
{ 
    public Car(string _name) 
    { 
    if(this.Make.Contains("%")) 
    { 
     //Let the user know this isn't valid there is an error 
    } 
    } 

    public int Id { get; set; } 
    public string Make { get; set; } 
} 

:

그래서 내가 생성자를 사용합니다 생각했다. 그래서

public ActionResult AddCar(Car car) 
{ 
    if(car.Make.Contains("%")) 
    { 
    //let user know this is not valid 
    } 
    if(ModelState.IsValid) 
    { 

    } 
    /// 
} 

있을 것입니다하지만 난 결코 자동차 (나는 % 기호를 포착, 실제로 검증 I의 호스트가 한 % 기호로 확인해야 할 것없는거야, 생각 유효하지 않은 문자가 포함 된 목록과 같이), 사용자가 자동차를 추가 할 수있는 모든 장소에서 유효성 검사 코드를 복제하면 비효율적입니다.

오류를 컨트롤러에서 생성하는 것이 올바른 방법일까요?

다시 한번 명확히하기 위해. 질문, 모델에서 컨트롤러로 메시지를 전달하는 방법이 있습니까? 그렇다면 사용자보기로 전달할 수 있습니까?

종류가 컨트롤러

답변

0

당신은 유효성 검사 논리를 사용하지 않아야 관련하여, 우리는 우리가 모델의 속성 값의 유효성을 검증 할 수있는 DataAnnotations 있습니다.

목적을 위해 RegularExpression 유효성 검사기를 사용할 수 있습니다.

자세한 내용은 Link을 참조하십시오.

관련 문제