首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET MVC 範例專案「Suteki.Shop」分析:強型別 ViewData 體系

     編輯:關於ASP.NET

強型別 ViewData 提供 IDE 智慧提示、編譯期檢查與 Controller/View 間嚴謹契約。Suteki.Shop 透過 MvcContrib.FluentHtml.ModelViewPage<T> 實現基底類別:

public class ViewPage<T> : MvcContrib.FluentHtml.ModelViewPage<T> where T : class {
  public ViewPage() : base(new LowercaseFirstCharacterOfNameBehaviour()) {}
}
public class ViewUserControl<T> : MvcContrib.FluentHtml.ModelViewUserControl<T> where T : class {
  public ViewUserControl() : base(new LowercaseFirstCharacterOfNameBehaviour()) {}
}

View 頁面宣告繼承 ViewPage<ShopViewData> 即可獲得強型別模型。

ViewData 基底類別體系

ViewData 類別圖

核心 ViewDataBase 實作 IMessageViewData、IErrorViewData,提供 Message、ErrorMessage 與鏈式設定方法 WithMessage/WithErrorMessage,便於 Controller 以 Fluent 風格傳遞訊息:

public abstract class ViewDataBase : IMessageViewData, IErrorViewData {
  public string Message { get; set; }
  public string ErrorMessage { get; set; }
  public ViewDataBase WithErrorMessage(string errorMessage) { ErrorMessage = errorMessage; return this; }
  public ViewDataBase WithMessage(string message) { Message = message; return this; }
}

後續文章將詳細剖析各具體 ViewData 類別與 Controller 使用情境。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved