2013-05-01 2 views
1

내 데이터베이스 모델이 아닌 양식 필드에 대해 필요한 유효성 검사를 추가하려고합니다. 현재 데이터베이스 모델에는 2 개의 값이 있습니다.모델 클래스에없는 양식 필드의 유효성 검사

모델 :

public class Values{ 
    [Required] 
    public string Value1{ get; set; } 
    [Required] 
    public string Value2 { get; set; } 
} 

내가 내보기에있는 제 3의 값은 그 유효성 검사를 처리 할 수있는 형성하고자하지만,이 데이터베이스에 존재하지 않기 때문에 내 데이터베이스 모델에 존재하지합니다,하지만 난 그것을 필요 컨트롤러에서 사용하십시오.

보기 :

나도 같은 간단한 검증와 세 번째 필드를 추가 할 수 있지만 그건 내 데이터베이스에 존재하지 않는 방법
<div class="editor-field"> 
     @Html.EditorFor(model => model.Value1) 
     @Html.ValidationMessageFor(model => model.Value1) 
    </div> 

    <div class="editor-field"> 
     @Html.EditorFor(model => model.Value2) 
     @Html.ValidationMessageFor(model => model.Value2) 
    </div> 

? 그렇지 않은 경우 어떻게 비슷한 유효성 검사를 수행 할 수 있습니까?

예 :

 <div class="editor-field"> 
     @Html.EditorFor(model => model.Value3) 
     @Html.ValidationMessageFor(model => model.Value3) 
     </div> 

당신을 감사합니다!

답변

1

동일한 간단한 유효성 검사를 사용하여 세 번째 필드를 추가 할 수 있지만 내 데이터베이스에 이 없습니까?

여기가 바로 viewmodel입니다. 따라서 모델 또는 데이터베이스로 다시 매핑되지 않아도되는 (또는 구체적으로) 입력을 더 많이 또는 덜 받아 들일 수 있습니다. 따라서 다음과 같은 것을 가질 수 있습니다 :

public class ValuesViewModel { 
    [Required] 
    public string Value1{ get; set; } 
    [Required] 
    public string Value2 { get; set; } 
    [Required] 
    public string Value3 { get; set; } 
} 

그런 다음 데이터베이스에서 모델을 쿼리하고 해당 뷰 모델에 매핑하십시오. 이런 식으로 뭔가 :

public ActionResult GetValues() { 
    var values = getFromDb(); 
    return View(new ValuesViewModel { 
     Value1 = values.Value1; 
     Value2 = values.Value2; 
     Value3 = some_other_value; 
    }); 

} 

당신은 다음 데이터베이스에있는 당신이 맞는 볼과 함께 일을 할 필드와 함께 다시받을 수 있습니다.

[HttpPost] 
public ActionResult PostValues(ValuesViewModel input) { 
    var values = getFromDb(); 
    // map values back to the model from the viewmodel 
    values.Value1 = input.Value1; 
    values.Value2 = input.Value2; 
    // some logic applied to Value3 
    // etc, etc 
    // save your model to the database 
} 
+0

이것은 의미가 있습니다. 나는 그것을 시도 할 것입니다. 내가 찾은 것을 알려주십시오. – Dom

+0

이것은 내가 필요한 것입니다. 내 시야를 넓혀 주셔서 감사합니다. – Dom

+0

안녕하세요. @Dom –

0

모델의 일부가 아닌 속성에서 유효성 검사를 할 수 없습니다. Html.Helper * * 특정 속성에 대한 html 태그를 만듭니다. 존재하지 않는 경우 어떻게 확인 하시겠습니까?

컨트롤러에 변수를 전달하려는 경우보기 백 논리가있는 뷰에 변수를 추가 할 수 있지만 실제로 존재하지 않는 값의 유효성을 이해하는 것은 아닙니다.