0

현재 텍스트 상자와 ValidationMessageFor가있는 부분 뷰가 있습니다. 이 제대로 작동하고 입력이 유효하지 않은 경우 메시지가 예상대로 표시됩니다. 약간의 HTML 리팩토링을하고 있는데, 현재 부분 뷰가 포함 된 뷰까지 validationMessageFor를 높이기를 원합니다. 나는 거의 올바르게 작동하지만 몇 가지 걸림돌이있다.부분 뷰 (ASP.NET MVC3)의 Html.ValidationMessageFor

@Html.ValidationMessageFor(m => m.Mileage, string.Empty, new { id = "spanMileageError", @class = "mileageErrorSpanClass" }) 

이보기의 모델은 차량용 개체입니다. partialView의 모델이 구성은 텍스트 박스 ("Vehicle.Mileage")에 이름을 부여

@Html.TextBoxFor(v => v.Vehicle.Mileage, new { placeHolder = mileagePlaceHolderText, id = Model.TextBoxId, maxlength = "7", @class="mileageTextBoxClass" })  

약간 다른 개체하지만 유효성 속성 ("데이터 valmsg - 대")은 동일하다 "마일리지 ""Vehicle.Mileage "가 아닙니다.

ValidationMessageFor 도우미가 올바른 유효성 확인 작업을 수행하기 위해 올바른 HTML을 내보내도록 수정하려면 어떻게해야합니까? 여기

는 팩터 스팬 내측 스팬 요소 누락

<input type="text" value="" placeholder="Enter Mileage" name="Vehicle.Mileage" maxlength="7" id="textBoxMileage" data-val-range-min="1" data-val-range-max="999999" data-val-range="Mileage must be a valid number between 1 and 999,999." data-val-number="The field Mileage must be a number." data-val="true" class="mileageTextBoxClass placeholder" autocomplete="off"> 
<span id="spanMileageError" data-valmsg-replace="true" data-valmsg-for="Mileage" class="field-validation-valid mileageErrorSpanClass"></span> 

통지 후 HTML 여기

<input type="text" value="" placeholder="Enter Mileage" name="Vehicle.Mileage"  maxlength="7" id="textBoxMileage" data-val-range-min="1" data-val-range-max="999999" data- val-range="Mileage must be a valid number between 1 and 999,999." data-val-number="The  field Mileage must be a number." data-val="true" class="mileageTextBoxClass input- validation-error" autocomplete="off"> 

<span id="spanMileageError" data-valmsg-replace="true" data-valmsg-for="Vehicle.Mileage" class="mileageErrorSpanClass field-validation-error"><span htmlfor="textBoxMileage" generated="true" class="">Mileage must be a valid number between 1 and 999,999.</span></span> 

하고 HTML 팩터에 앞서 현재 뷰의 렌더링 된 HTML 상태인지 이전에는 존재했다. 누구든지 여기서 문제를 해결할 수 있습니까?

유용한 정보와 유용한 정보를 제공해 주셔서 감사합니다. 건배,
~ ck in San Diego

답변

1

당신은 단지 Html.TextBox을 사용할 수 있습니다() 대신

@Html.TextBox("Mileage", Model.Vehicle.Mileage, new { placeHolder = mileagePlaceHolderText, id = Model.TextBoxId, maxlength = "7", @class="mileageTextBoxClass" }) 
0

저는 MVC에 조금 익숙하지만 왜 같은 모델을 사용하지 않습니까? 이처럼 :

@model ProjectNamespace.Models.Vehicle 

또는 같은

:

@using ProjectNamespace.Models.Vehicle 

난 당신이 원하는 결과를 얻을 수있을 것 같아요.

+1

확실히 사용하여 작동하지 않습니다. using은 네임 스페이스 용이고 Vehicle은 모델/클래스입니다. – Rap