0

現在、私は、テキストボックスとValidationMessageForの部分ビューを持っています。これは正常に動作し、入力が有効でないときにメッセージが期待通りに表示されます。私は少しのHTMLリファクタリングをしており、現在、部分ビューが含まれているビューまでvalidationMessageForをバンプしたいと思います。私はほとんど正常に動作しているが、いくつかの障害がある。Html.ValidationMessageFor部分表示(ASP.NET MVC3)

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

このビューのモデルは車両オブジェクトです。 partialViewのモデルはわずかに異なるオブジェクト

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

この構成は、テキストボックス(「Vehicle.Mileage」)に名前を与えるが検証属性(「データvalmsg-用」)は、マイレージ」に等しいです。 "Vehicle.Mileage"ではなく "

ValidationMessageForヘルパーがこの検証作業を行うために正しいHTMLを発行するように修正するにはどうすればよいですか?ここで

はリファクタリングスパンは、内側span要素が欠落している

<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を

答えて

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

関連する問題