1

次の属性を作成します。

public class SpecificDataTypeAttribute : DataTypeAttribute
{
    public SpecificDataType(DataType dataType, string field)
        : base(dataType)
    {
        this.ErrorMessage = string.Format("{0} {1}", field, Messages.SpecificDataTypeAttribute);
    }
}

そして次のように使用します:

[SpecificDataType(DataType.DateTime, "Initial date")]
public DateTime? InitialDate { get; set; }

だから、入っているメッセージMessages.SpecificDataTypeAttribute"is in a incorrect format.". InitialDate に間違った日付を入力すると、デフォルトのエラーが発生しました: "The value '12' is not valid for InitialDate.". なんで?ブレークポイントを配置すると、コードは SpecificDataType ctor を呼び出しています。

4

2 に答える 2

1

間違った方向に進んでいます-asp.net mvcでは、DataTypeAttribute検証ルールが定義されていません。これは多かれ少なかれUIHintAttributeに似ており、編集モードまたは表示モードでプロパティをレンダリングするときに使用するテンプレートを指定するのに役立ちます。

システム タイプの検証メッセージのカスタマイズについては、この回答をご覧ください。

の値PropertyValueInvalidは書式設定されており、{0} は無効な値に置き換えられ、{1} はプロパティ名に置き換えられています。したがって、次のように定義できます

{1} は無効な形式です

于 2012-04-05T13:38:49.047 に答える
0

MVC 4 では、デフォルトのエラー メッセージをローカライズできます。http://weblogs.asp.net/imranbaloch/archive/2013/03/31/localizing-default-error-messages-in-asp-net-mvc-and-web-form.aspx

于 2014-02-28T14:29:25.113 に答える