'.value'または.anythingという名前のフィールドは、クライアント検証を生成しません。たとえば、このコード:mvc3クライアントコードを生成しない邪魔にならない検証
<textarea rows="2" name="ContentObjectFirm.Description" id="ContentObjectFirm_Description" data-val-required="Firm description is required" data-val="true" cols="20"></textarea>
通知 "データ-VAL-必要"
は今、私は "ContentObjectFirm.Description.Value" という名前のフィールドを持っている必要があります:
@Html.TextArea("ContentObjectFirm.Description")
はこれを生成し - 私はここでカスタムバインダーを使用しています(ただし、私の質問には関係ありません)。結論は、フィールドの名前に「.Value」を付ける必要があるということです。だから、このコードの
:Html.TextArea( "ContentObjectFirm.Description.Value")@
テキストエリアのヘルパーが生成します。
<textarea rows="2" name="ContentObjectFirm.Description.Value" id="ContentObjectFirm_Description_Value" cols="20"></textarea>
モデルクラスを:
[Required(ErrorMessageResourceName = "fld_Description_val_Required", ErrorMessageResourceType = typeof(Resources.Service.Controllers.Firm))]
[Display(Name = "fld_Description_lbl", ResourceType = typeof(Resources.Service.Controllers.Firm))]
public MultilanguageProperty<string> Description
{
get
{
return this.GetMultilanguageProperty("Description", string.Empty, this);
}
set
{
this.SetMultilanguageProperty("Description", value);
}
}
MultilanguagePropertyは私のカスタムインターフェースです(重要ではありません)。 'string Description'を使用すると、それでも機能しません。
控えめな検証コードが追加されるようにするにはどうすればよいですか? .value文字列を追加すると、なぜスキップされますか?
おかげ
こんにちは、あなたは分析のためのモデルクラスを提供できますか? – tpeczek