2011-03-29 37 views

回答

3

您可以编写自定义所需的属性

[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property,            AllowMultiple = true, Inherited = true)] 
public sealed class AEMRequiredAttribute: ValidationAttribute 
{ 
    private const string _defaultErrorMessage = "* required";  
    public AEMRequiredAttribute() 
     : base(_defaultErrorMessage) 
    {  }  
    public override string FormatErrorMessage(string name) 
    { 
     return String.Format(CultureInfo.CurrentUICulture, "* required", name); 
    }  
    public override bool IsValid(object value) 
    { 
     if (value == null || String.IsNullOrWhiteSpace(value.ToString())) return false; 
     else return true; 
    } 
} 

调用这个属性如下:

public partial class AEMClass 
    { 
     [DisplayName("Dis1")] 
     [AEMRequiredAttribute] 
     public string ContractNo { get; set; } 
    } 
0

您可以创建一个新的HTML帮助,然后调入标的ValidationMessageValidationMessageFor助手设置消息文本,如此操作。基于ValidationMessageFor

事情是这样的:

public static class HtmlHelperExtensions { 
     public static IHtmlString ValidatorMessageWithMyTextFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression) { 
      return htmlHelper.ValidationMessageFor<TModel, TProperty>(expression, "required *"); 
     } 
} 

,并且可以使用

@Html.ValidatorMessageWithMyTextFor(m=>m.MyModelPropertyToValidate) 

当然,从应用的角度侧的所有作品,而不是添加到您的视图模型方面,所以这一切都取决于你想在哪里嵌入消息。如果它是模型方面,那么AEM的解决方案是一个很好的解决方案。