EF を使用した ASP.NET MVC 4 プロジェクトがあり、一部のフィールドのビューで検証の問題があります。ValidationMessageFor は 10 進数フィールドでのみ機能することに気付きました
<script type="text/javascript" language="javascript" src="@Url.Content("~/Scripts/jquery.validate.min.js")"></script>
<script type="text/javascript" language="javascript" src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"></script>
@using (Html.BeginForm("Create", "Order", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.ValidationSummary(true)
<div class="editor-label">
@Html.Label("Adresa livrare")
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.adresa, new { maxlength = "80" }) @*string - nvarchar*@
@Html.ValidationMessageFor(model => model.adresa)
</div>
<div class="editor-label">
@Html.Label("Curs Euro")
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.curs_euro, new { onkeypress = "return numericOnly(this)", id = "euro", maxlength = 9 }) @*decimal - decimal(10,2)*@
@Html.ValidationMessageFor(model => model.curs_euro, Resources.Global.strCursEuroV)
</div>
Q:文字列フィールドの検証が機能しないのはなぜですか?
モデル デザイナーを装飾して [必須] を追加しようとしましたが、すべてのプロジェクトが台無しになりました。
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
[Required(ErrorMessage = "validation messeage...")]
public global::System.String adresa
HTML
<div class="editor-label">
<label for="Adresa_livrare">Adresa livrare</label>
</div>
<div class="editor-field">
<input id="adresa" maxlength="80" name="adresa" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="adresa" data-valmsg-replace="true"></span>
</div>
<div class="editor-label">
<label for="Curs_Euro">Curs Euro</label>
</div>
<div class="editor-field">
<input data-val="true" data-val-number="The field curs_euro must be a number." data-val-required="The curs_euro field is required." id="euro" maxlength="9" name="curs_euro" onkeypress="return numericOnly(this)" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="curs_euro" data-valmsg-replace="false">Introduceti cursul Euro</span>
</div>