私はASP.NET MVC3でこのような継承された属性を作成した:それは働かなかったとMVCはそれを無視しASP.NET MVC 3のRequiredAttributeから継承すると、クライアント側の検証が機能しません。
[RequiredFromResource("Title", "Resources.Resource, MyProject.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null")]
public string Title { get; set; }
:
public sealed class RequiredFromResourceAttribute : RequiredAttribute
{
public RequiredFromResourceAttribute(string errorResourceName, string errorResourceTypeName)
{
this.ErrorMessageResourceName = errorResourceName;
this.ErrorMessageResourceType = Type.GetType(errorResourceTypeName);
}
}
そして、このようにそれを使用します。次に、次のようにRequiredAttributeから継承したよりシンプルなクラスを作成します。
public class MyRequiredAttribute : RequiredAttribute
{
}
私はそれを言ったように使用します。しかし、それは再び働かなかった。
これらの方法はすべて「DisplayNameAtrribute」で完全に機能しますが、
何が問題ですか?
私の意見では、marcindの答えはSkipHarrisより優れています。 SkipのRequiredAttributeAdapterは、クライアント側の検証でRequiredFromResourceAttributeの代わりに通常のRequired属性を使用するように見えます。 – Keerigan