ASP.NET MVC CodePlex Preview 4 Installer + Source + Changed
阿新 • • 發佈:2018-12-27
下載連線
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類
這是一個新增加的類,我想,可以用來輸出美化的異常處理,呵呵
publicclass ExceptionContext : ControllerContext {
public ExceptionContext(ControllerContext controllerContext, Exception exception);
public ActionResult Result { get; set; }
public Boolean ExceptionHandled { get; set; }
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
publicabstractclass FilterAttribute : Attribute {
protected FilterAttribute();
public Int32 Order { get; set; }
}
publicclass FilterInfo {
public FilterInfo();
public IList<IActionFilter> ActionFilters { get; set; }
public IList<IAuthorizationFilter> AuthorizationFilters { get; set; }
public IList<IExceptionFilter> ExceptionFilters { get; set; }
public IList<IResultFilter> ResultFilters { get; set; }
}
publicsealedclass HandleErrorAttribute : FilterAttribute, IExceptionFilter {
public HandleErrorAttribute();
public String View { get; set; }
public Type ExceptionType { get; set; }
}
publicclass HandleErrorInfo {
public HandleErrorInfo(Exception exception, String controller, String action);
public Exception Exception { get; }
public String Action { get; }
public String Controller { get; }
}
publicclass HttpUnauthorizedResult : ActionResult {
public HttpUnauthorizedResult();
} 還有一些我看來比較有用的類
publicinterface IAuthorizationFilter { //用來獲取使用者資訊的FIlter介面
void OnAuthorization(AuthorizationContext filterContext);
}
publicinterface IExceptionFilter { //用來獲取異常的FIlter介面
void OnException(ExceptionContext filterContext);
}
publicenum InsertionMode { //感覺有點像觸發器的感覺 ,這個Enum所標誌的那個類一定很好用呵呵
Replace,
InsertBefore,
InsertAfter
}
publicinterface IResultFilter { //這個應該是新的Filter介面
void OnResultExecuted(ResultExecutedContext filterContext);
void OnResultExecuting(ResultExecutingContext filterContext);
}
publicinterface ITempDataProvider {
TempDataDictionary LoadTempData();
void SaveTempData(TempDataDictionary tempDataDictionary);
}
對於Helper中
AjaxExtensions靜態類
是新增加的,程式碼如下:
publicstaticclass AjaxExtensions {
publicstatic Boolean IsMvcAjaxRequest(HttpRequestBase request);
}
LinkExtensions類
Mailto方法都被刪除了
AjaxHelper類
這個算是改動最大添加了一些比較有用的實現
publicclass 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輔助的類
如
publicclass AjaxOptions {
public AjaxOptions();
public InsertionMode InsertionMode { get; set; }
public String OnBegin { get; set; }
public String OnFailure { get; set; }
public String OnSuccess { get; set; }
public String UpdateTargetId { get; set; }
} 儲存系統
TempDataDictionary 類
設定為可以序列化
添加了Load和Save方法,並給了一個可以反序列化初始化的建構函式
ViewDataDictionary類
增加了個public Object Eval(String expression); 方法
MemberShip
對於微軟自己的角色控制,有2個類被新增
publicclass AuthorizationContext : ControllerContext { //看來是用來在Membership得到Action資訊
public AuthorizationContext(ControllerContext controllerContext, MethodInfo actionMethod);
public ActionResult Result { get; set; }
public Boolean Cancel { get; set; }
public MethodInfo ActionMethod { get; }
}
publicsealedclass AuthorizeAttribute : FilterAttribute, IAuthorizationFilter { //這個是在Controller中獲取使用者資訊的應該是的,呵呵
public AuthorizeAttribute();
public String Roles { get; set; }
public String Users { get; set; }
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類
這是一個新增加的類,我想,可以用來輸出美化的異常處理,呵呵
publicclass ExceptionContext : ControllerContext {
public ExceptionContext(ControllerContext controllerContext, Exception exception);
public ActionResult Result
public Boolean ExceptionHandled { get; set; }
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
publicabstractclass FilterAttribute : Attribute {
protected FilterAttribute();
public Int32 Order { get; set; }
}
publicclass FilterInfo {
public FilterInfo();
public IList<IActionFilter> ActionFilters { get; set; }
public IList<IAuthorizationFilter> AuthorizationFilters { get; set; }
public IList<IExceptionFilter> ExceptionFilters { get; set; }
public IList<IResultFilter> ResultFilters { get; set; }
}
publicsealedclass HandleErrorAttribute : FilterAttribute, IExceptionFilter {
public HandleErrorAttribute();
public String View { get; set; }
public Type ExceptionType { get; set; }
}
publicclass HandleErrorInfo {
public HandleErrorInfo(Exception exception, String controller, String action);
public Exception Exception { get; }
public String Action { get; }
public String Controller { get; }
}
publicclass HttpUnauthorizedResult : ActionResult {
public HttpUnauthorizedResult();
} 還有一些我看來比較有用的類
publicinterface IAuthorizationFilter { //用來獲取使用者資訊的FIlter介面
void OnAuthorization(AuthorizationContext filterContext);
}
publicinterface IExceptionFilter { //用來獲取異常的FIlter介面
void OnException(ExceptionContext filterContext);
}
publicenum InsertionMode { //感覺有點像觸發器的感覺 ,這個Enum所標誌的那個類一定很好用呵呵
Replace,
InsertBefore,
InsertAfter
}
publicinterface IResultFilter { //這個應該是新的Filter介面
void OnResultExecuted(ResultExecutedContext filterContext);
void OnResultExecuting(ResultExecutingContext filterContext);
}
publicinterface ITempDataProvider {
TempDataDictionary LoadTempData();
void SaveTempData(TempDataDictionary tempDataDictionary);
}
對於Helper中
AjaxExtensions靜態類
是新增加的,程式碼如下:
publicstaticclass AjaxExtensions {
publicstatic Boolean IsMvcAjaxRequest(HttpRequestBase request);
}
LinkExtensions類
Mailto方法都被刪除了
AjaxHelper類
這個算是改動最大添加了一些比較有用的實現
publicclass 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輔助的類
如
publicclass AjaxOptions {
public AjaxOptions();
public InsertionMode InsertionMode { get; set; }
public String OnBegin { get; set; }
public String OnFailure { get; set; }
public String OnSuccess { get; set; }
public String UpdateTargetId { get; set; }
} 儲存系統
TempDataDictionary 類
設定為可以序列化
添加了Load和Save方法,並給了一個可以反序列化初始化的建構函式
ViewDataDictionary類
增加了個public Object Eval(String expression); 方法
MemberShip
對於微軟自己的角色控制,有2個類被新增
publicclass AuthorizationContext : ControllerContext { //看來是用來在Membership得到Action資訊
public AuthorizationContext(ControllerContext controllerContext, MethodInfo actionMethod);
public ActionResult Result { get; set; }
public Boolean Cancel { get; set; }
public MethodInfo ActionMethod { get; }
}
publicsealedclass AuthorizeAttribute : FilterAttribute, IAuthorizationFilter { //這個是在Controller中獲取使用者資訊的應該是的,呵呵
public AuthorizeAttribute();
public String Roles { get; set; }
public String Users { get; set; }