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类
这是一个新增加的类,我想,可以用来输出美化的异常处理,呵呵
属性编程与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
对于Helper中
AjaxExtensions静态类
是新增加的,代码如下:
public static class AjaxExtensions {
public static Boolean IsMvcAjaxRequest(HttpRequestBase request);
}
LinkExtensions类public static Boolean IsMvcAjaxRequest(HttpRequestBase request);
}
Mailto方法都被删除了
AjaxHelper类
这个算是改动最大添加了一些比较有用的实现
如
TempDataDictionary 类
设置为可以序列化
添加了Load和Save方法,并给了一个可以反序列化初始化的构造函数
ViewDataDictionary类
增加了个public Object Eval(String expression); 方法
MemberShip
对于微软自己的角色控制,有2个类被添加
MVC的缓存
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