2013-05-10 2 views
3

도대체이 물건들은 어디에서 오는 것입니까? 나는 그 (것)들을 좋아하고, 나는 나의 위치에서 그 (것)들을 다른 곳에 레버리지를 도입하고 싶으면.MVC 4의 자동 툴팁 유효성 검사?

[Display(Name = "Residential")] 
[RegularExpression(@"[-+]?[0-9]*\.?[0-9]?[0-9]", ErrorMessage = "Must be a number")] 
public Byte? residentialExperience { get; set; } 

enter image description here

<div class="editor-label row"> 
    @Html.LabelFor(model => model.residentialExperience) 
</div> 
<div class="editor-field row"> 
    @Html.EditorFor(model => model.residentialExperience) 
    @Html.ValidationMessageFor(model => model.residentialExperience) 
</div> 

가 어떻게 이러한 검증은 다른 곳에서 툴팁 사용할 수 있습니다 : 내가 모델에서 정규 표현식 유효성 검사를 수행 할 때 그들은 단지 보여 나타 납니까? 또한 어떻게 그들을 끌 수 있습니까?

기타 : 내 모델에있는 것과 동일한 메시지가 표시되지 않습니다. "숫자를 입력하십시오."라고 쓰고있는 반면에 "숫자 여야합니다."라고 쓰여 있습니다.

+0

재미있는, 같은 날에 발생하지만 재미있는 부분은 MVC의 ModelState 검증이 내 사용자 지정 유효성 검사를 통해 INT16 필드에서 발로 된 것입니다 속성이 있지만 36 문자 이후에도이 HTML 유효성 검사가 시작되었습니다 ... – Remy

답변

4

숫자 필드를 출력하기 때문입니다. 브라우저가 무엇을 기대 알고있는 numbber로 유형을 정의하여

<input type="number" ... /> 

그것은 당신에게 일반적인 메시지를 줄 것이다 : 당신이 당신의 HTML을 보면 당신은 당신이 이런 식으로 뭔가를 것을 볼 수 있습니다. 이것은 HTML 5 사양의 일부입니다.

당신은 당신이 할 수있는 기본 동작을 재정의하려는 경우 :

@Html.TextBoxFor(model => model.residentialExperience, new { @type = "text" }) 
+0

HTML5 ... 어떻게 보입니까?이 기능을 해제하고 기본 MVC 오류 메시지를 표시하려면 어떻게해야합니까? 이것은 멋지지만 다른 곳에서는 사용할 수 없다면 나머지 응용 프로그램과 함께 가지 않고 사용자를 혼동시킬 수 있습니다. – user1477388

+0

기본 동작을 무시할 수있는 방법으로 내 대답을 편집했습니다. – Kenneth

+0

여기에 짧은 기사가 있지만, html 5 유효성 검사를 구현하지 않을 것이라고 생각합니다. 간단한 일에는 좋을 지 모르지만 중요한 분야에 대한 유효한 데이터를 확보하는 데는 도움이되지 않습니다. [link] (http://blog.isotoma.com/2012/03/html5-input-typenumber-and-decimalsfloats-in-chrome/) – Remy