• ASP.NET MVC CodePlex Preview 4 Installer + Source + Changed


    下载连接

    Pv3-Codeplex Pv4之间的差异:
    ViewPage
    ViewPage类
    增加了InitHelpers方法

    Controller
    Controller类
     新实现了IAuthorizationFilter/IExceptionFilter接口
    添加了 public ITempDataProvider TempDataProvider { get; set; } 属性
    ControllerActionInvoker类
    新增加了四个方法:
    FilterInfo GetFiltersForActionMethod(MethodInfo methodInfo);
    ResultExecutedContext InvokeActionResultWithFilters(ActionResult actionResult, IList<IResultFilter>
    filters);
    AuthorizationContext InvokeAuthorizationFilters(MethodInfo methodInfo, IList<IAuthorizationFilter>
    filters);
    ExceptionContext InvokeExceptionFilters(Exception exception, IList<IExceptionFilter> filters);
    删除了原有的:
    IList<IActionFilter> GetActionFiltersForMember(MemberInfo memberInfo);
    IList<IActionFilter> GetAllActionFilters(MethodInfo methodInfo);
    ResultExecutedContext InvokeActionResultWithFilters(ActionResult actionResult, IList<IActionFilter>
    filters);
    ControllerBuilder 类
    增加了属性public HashSet<String> DefaultNamespaces { get; }
    ExceptionContext类
    这是一个新增加的类,我想,可以用来输出美化的异常处理,呵呵
    public class ExceptionContext : ControllerContext 
            
    public ExceptionContext(ControllerContext controllerContext, Exception exception); 
     
            
    public ActionResult Result getset; } 
            
    public Boolean ExceptionHandled getset; } 
            
    public Exception Exception get; } 
    }

    属性编程与Filter中
    IActionFilter接口
    删除了以下两个事件
    void OnResultExecuted(ResultExecutedContext filterContext);
    void OnResultExecuting(ResultExecutingContext filterContext);

    ActionExecutedContext类的构造函数改为
    ActionExecutedContext(ControllerContext controllerContext, MethodInfo actionMethod, Boolean canceled, Exception
    exception)
    增加了public Boolean Canceled { get; }只读属性

    ActionFilterAttribute 类
    由继承于Attribute 改为继承于FilterAttribute,另外增加实现IResultFilter接口
    删除了 Order 属性

    另外新增加了几个类,有关用Action的Filter
    public abstract class FilterAttribute : Attribute 
            
    protected FilterAttribute(); 
     
            
    public Int32 Order getset; } 
        }
     
     
        
    public class FilterInfo 
            
    public FilterInfo(); 
     
            
    public IList<IActionFilter> ActionFilters getset; } 
            
    public IList<IAuthorizationFilter> AuthorizationFilters getset; } 
            
    public IList<IExceptionFilter> ExceptionFilters getset; } 
            
    public IList<IResultFilter> ResultFilters getset; } 
        }
     
     
        
    public sealed class HandleErrorAttribute : FilterAttribute, IExceptionFilter 
            
    public HandleErrorAttribute(); 
     
            
    public String View getset; } 
            
    public Type ExceptionType getset; } 
       }
     
     
        
    public class HandleErrorInfo 
            
    public HandleErrorInfo(Exception exception, String controller, String action); 
     
            
    public Exception Exception get; } 
            
    public String Action get; } 
            
    public String Controller get; } 
        }
     
     
        
    public class HttpUnauthorizedResult : ActionResult 
            
    public HttpUnauthorizedResult(); 
        }

    还有一些我看来比较有用的类
    public interface IAuthorizationFilter //用来获取用户信息的FIlter接口
            void OnAuthorization(AuthorizationContext filterContext); 
        }
     
     
        
    public interface IExceptionFilter //用来获取异常的FIlter接口
            void OnException(ExceptionContext filterContext); 
        }
     
     
        
    public enum InsertionMode //感觉有点像触发器的感觉 ,这个Enum所标志的那个类一定很好用呵呵 
            Replace, 
            InsertBefore, 
            InsertAfter 
        }
     
     
        
    public interface IResultFilter //这个应该是新的Filter接口
            void OnResultExecuted(ResultExecutedContext filterContext); 
            
    void OnResultExecuting(ResultExecutingContext filterContext); 
        }
     
     
        
    public interface ITempDataProvider 
            TempDataDictionary LoadTempData(); 
            
    void SaveTempData(TempDataDictionary tempDataDictionary); 
        }


    对于Helper中
    AjaxExtensions静态类
    是新增加的,代码如下:
    public static class AjaxExtensions { 
            
    public static Boolean IsMvcAjaxRequest(HttpRequestBase request); 
        }
    LinkExtensions类
    Mailto方法都被删除了
    AjaxHelper类
    这个算是改动最大添加了一些比较有用的实现
    public class AjaxHelper 
            
    public String ActionLink(String linkText, String actionName, AjaxOptions ajaxOptions); 
            
    public String ActionLink(String linkText, String actionName, String controllerName, AjaxOptions ajaxOptions); 
            
    public String ActionLink(String linkText, String actionName, Object values, AjaxOptions ajaxOptions); 
            
    public String ActionLink(String linkText, String actionName, RouteValueDictionary values, AjaxOptions ajaxOptions); 
            
    public String ActionLink(String linkText, String actionName, String controllerName, RouteValueDictionary values, 
    AjaxOptions ajaxOptions); 
            
    public String ActionLink(String linkText, String actionName, Object values, AjaxOptions ajaxOptions, Object 
    htmlAttributes); 
            
    public String ActionLink(String linkText, String actionName, RouteValueDictionary values, AjaxOptions ajaxOptions, 
    IDictionary
    <String,Object> htmlAttributes); 
    public String ActionLink(String linkText, String actionName, String controllerName, Object values, AjaxOptions 
    ajaxOptions); 
            
    public String ActionLink(String linkText, String actionName, String controllerName, RouteValueDictionary values, 
    AjaxOptions ajaxOptions, IDictionary
    <String,Object> htmlAttributes); 
            
    public String ActionLink(String linkText, String actionName, String controllerName, Object values, AjaxOptions 
    ajaxOptions, Object htmlAttributes); 
            
    public IDisposable Form(String actionName, AjaxOptions ajaxOptions); 
            
    public IDisposable Form(String actionName, Object values, AjaxOptions ajaxOptions); 
            
    public IDisposable Form(String actionName, RouteValueDictionary values, AjaxOptions ajaxOptions); 
            
    public IDisposable Form(String actionName, String controllerName, AjaxOptions ajaxOptions); 
            
    public IDisposable Form(String actionName, String controllerName, RouteValueDictionary values, AjaxOptions ajaxOptions); 
            
    public IDisposable Form(String actionName, Object values, AjaxOptions ajaxOptions, Object htmlAttributes); 
            
    public IDisposable Form(String actionName, RouteValueDictionary values, AjaxOptions ajaxOptions, 
    IDictionary
    <String,Object> htmlAttributes); 
            
    public IDisposable Form(String actionName, String controllerName, Object values, AjaxOptions ajaxOptions); 
            
    public IDisposable Form(String actionName, String controllerName, Object values, AjaxOptions ajaxOptions, Object 
    htmlAttributes); 
            
    public IDisposable Form(String actionName, String controllerName, RouteValueDictionary valuesDictionary, AjaxOptions 
    ajaxOptions, IDictionary
    <String,Object> htmlAttributes); 
        }

    另外因此而增加了一些对AjaxHelper辅助的类

    public class AjaxOptions 
            
    public AjaxOptions(); 
     
            
    public InsertionMode InsertionMode getset; } 
            
    public String OnBegin getset; } 
            
    public String OnFailure getset; } 
            
    public String OnSuccess getset; } 
            
    public String UpdateTargetId getset; } 
        }

    存储系统
    TempDataDictionary 类
    设置为可以序列化
    添加了Load和Save方法,并给了一个可以反序列化初始化的构造函数
    ViewDataDictionary类
    增加了个public Object Eval(String expression); 方法

    MemberShip
    对于微软自己的角色控制,有2个类被添加
    public class AuthorizationContext : ControllerContext //看来是用来在Membership得到Action信息
            public AuthorizationContext(ControllerContext controllerContext, MethodInfo actionMethod); 
     
            
    public ActionResult Result getset; } 
            
    public Boolean Cancel getset; } 
            
    public MethodInfo ActionMethod get; } 
        }
     
    public sealed class AuthorizeAttribute : FilterAttribute, IAuthorizationFilter //这个是在Controller中获取用户信息的应该是的,呵呵
            public AuthorizeAttribute(); 
     
            
    public String Roles getset; } 
            
    public String Users getset; } 
        }

    新功能
    MVC的缓存

    public class MvcHttpHandler : UrlRoutingHandler, IRequiresSessionState 
            
    public MvcHttpHandler(); 
        }
     
     
        
    public sealed class OutputCacheAttribute : ActionFilterAttribute, IActionFilter, IResultFilter //明显就是一个缓存的Filter呵呵
            public OutputCacheAttribute(); 
     
            
    public Boolean NoStore getset; } 
            
    public Int32 Duration getset; } 
            
    public OutputCacheLocation Location getset; } 
            
    public String CacheProfile getset; } 
            
    public String VaryByContentEncoding getset; } 
            
    public String VaryByCustom getset; } 
            
    public String VaryByHeader getset; } 
            
    public String VaryByParam getset; } 
      }


    删除 的类
        public static class ButtonBuilder; // removed
        public static class ButtonsAndLinkExtensions; // removed
        public class ComponentController; // removed
        public static class ImageBuilder; // removed
        public static class ImageExtensions; // removed
        public static class ViewExtensions; // removed

  • 相关阅读:
    [PHP] Layui + jquery 实现 实用的文章自定义标签
    个人总结第五周
    个人总结第四周
    个人总结第三周
    个人总结第二周
    个人总结第一周
    用户体验评价
    第二阶段scrum冲刺
    单词统计
    用户模块和用户场景
  • 原文地址:https://www.cnblogs.com/chsword/p/aspnetmvcpv4installsourcechangedcn.html
Copyright © 2020-2023  润新知