0

クライアント側の検証は、外部キーに対してのみ機能しません。

私は持っています

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

含まれているだけでなく

<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />

web.configファイルに設定します。

カスタム属性などはありません。それは同じくらい単純なものです

[Required(ErrorMessage = "Fiscal year is required")]
[Display(Name = "Fiscal Year")]
public int FiscalYearId { get; set; }

これについて何かアイデアはありますか?解決策を探しましたが、まったく機能しない場合があります。ほとんどの解決策では、上記の2つのスクリプトがソースであり、上記の2つのキーがweb.conifgファイルに追加されていることを確認します。

jsエラーは発生せず、firebugで監視しました。すべてが完璧に機能しているように見えますが、明らかにそうではありません。

非外部キーフィールドを修正して再送信すると、データ検証はサーバー側で機能します。これは、二重の検証を作成していて、ユーザーを困らせるため、問題になります。

ヘルプは大歓迎です。

以下はHTML部分です。usingブロックに含まれています。これは、MVC3で生成された標準のCRUDコードです。

<div class="editor-label">
    <label for="FiscalYearId">Fiscal Year</label>
</div>
<div class="editor-field">
    <select id="FiscalYearId" name="FiscalYearId">
        <option value="">---Select Fiscal Year---</option>
        <option value="1">FY2013</option>
    </select>
    <span class="field-validation-valid" data-valmsg-for="FiscalYearId" data-valmsg-replace="true"></span>
</div>
4

1 に答える 1

0

HTMLでレンダリングされたメタデータ属性はないと思います。ビューでこれを試してください:

if (this.ViewContext.FormContext == null) 
{
    this.ViewContext.FormContext = new FormContext(); 
}
于 2012-12-04T20:43:32.763 に答える