を使用していない両方のエラーはこれが私のモデルである:どちらかErrorMessageStringまたはErrorMessageResourceNameを設定する必要がありますが、CreditCardAttribute
namespace MvcApplication2.Models
{
public class CreditCard
{
[CreditCard(ErrorMessageResourceType = typeof(Messages), ErrorMessageResourceName = "CardNumberInvalid")]
public string CardNumber { get; set; }
}
}
これは私のMessages.resxです:
名前値
は、あなたのカードを確認してくださいCardNumberInvalid数字は正しい
これは私の見解です。
@model MvcApplication2.Models.CreditCard
@Html.TextBoxFor(m => m.CardNumber);
MVCバージョン3では、これはエラーなく動作します。 MVC 4では、このページに行くと「ErrorMessageStringまたはErrorMessageResourceNameを設定する必要がありますが、両方を設定する必要はありません」というメッセージが表示されます。これはCreditCardAttributeでのみ発生します。 RequiredAttributeなどの他の検証属性も正常に機能します。私はErrorMessageResourceNameだけを設定しました。私はErrorMessageStringを設定していないので、間違ったことを理解していない。誰でも助けてくれますか?
新しい「EmailAddress」データ注釈を使用しているときに同じエラーが発生しました。これで問題は解決しました。ありがとう! –
しかし、これにより、カスタムエラーメッセージセットも削除されます。嘘をつきにくい方法でIansの答えをチェック! http://stackoverflow.com/a/16211476/268091 – MEMark
@MEMarkこれは、リソースから直接エラーメッセージを設定する必要性に対応したものです。カスタムエラーメッセージへの参照を理解しているかわかりません。 –