zoukankan      html  css  js  c++  java
  • MVC 扩展方法特点

     .NET MVC 3中扩展方法特点:

        (1)扩展类的名称以Extensions结尾;

        (2)扩展类的类型是static;

        (3)扩展方法至少有一个参数,第一个参数必须指定该方法作用于哪个类型,并且该参数以this修饰符为前缀;

        (4)扩展方法的类型是static;

        (5)如果拓展方法的返回值是字符串则返回类型是MvcHtmlString,而不是string;

        (6)页面调用必须用using指令导入扩展类型所在的命名空间。

    1.  <label for="Address">Address:</label> 
    2.                 <%= Html.TextBox("user.Address")%>
    3.               <%= Html.ValidationMessage("user.Address")%> 
      1. var errors = DataAnnotationsValidationRunner.GetErrors(user);  
      2.             if (errors.Any())  
      3.             {  
      4.                 new RulesException(errors).AddModelStateErrors(ModelState,"user");  
      5.             }  
        1. public static IEnumerable<ErrorInfo> GetErrors(object instance)  
        2.         {  
        3. var metadataAttrib = instance.GetType().GetCustomAttributes(typeof(MetadataTypeAttribute), true)
        4. .OfType<MetadataTypeAttribute>().FirstOrDefault();  
        5.             var buddyClassOrModelClass = metadataAttrib != null ? metadataAttrib.MetadataClassType : instance.GetType();  
        6.             var buddyClassProperties = TypeDescriptor.GetProperties(buddyClassOrModelClass).Cast<PropertyDescriptor>();  
        7.             var modelClassProperties = TypeDescriptor.GetProperties(instance.GetType()).Cast<PropertyDescriptor>();  
        8.  
        9.             return from buddyProp in buddyClassProperties  
        10.                    join modelProp in modelClassProperties on buddyProp.Name equals modelProp.Name  
        11.                    from attribute in buddyProp.Attributes.OfType<ValidationAttribute>()  
        12.                    where !attribute.IsValid(modelProp.GetValue(instance))  
        13.                    select new ErrorInfo(buddyProp.Name, attribute.FormatErrorMessage(string.Empty), instance);  
        14.         }  
  • 相关阅读:
    hdu 3790 最短路径问题
    hdu 2112 HDU Today
    最短路问题 以hdu1874为例
    hdu 1690 Bus System Floyd
    hdu 2066 一个人的旅行
    hdu 2680 Choose the best route
    hdu 1596 find the safest road
    hdu 1869 六度分离
    hdu 3339 In Action
    序列化和反序列化
  • 原文地址:https://www.cnblogs.com/jinhaoObject/p/4641046.html
Copyright © 2011-2022 走看看