程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> Asp.net MVC示例項目“Suteki.Shop”分析之ViewData

Asp.net MVC示例項目“Suteki.Shop”分析之ViewData

編輯:關於ASP.NET

使用強類型的ViewData好處有許多,比如說在IDE中就會有更好的支持,比如代碼提示。同時在View 與Controller之間有更嚴謹的“約定”。在Suteki.Shop項目中作者對強類型的ViewPage引入 是通過MvcContrib實現的,下面就是其ViewPage<T>代碼(Suteki.Shop\Views\ViewPage.cs):

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())
{}
}

可以看出ViewPage和 ViewUserControl只是對MvcContrib中ModelViewPage,ModelViewUserControl的繼承,代碼很簡單,沒 什麼太多可說的。強類型的ViewData使用形如:ViewPage<TViewData>,我們可以通過打開一個 View看一下,比如“編輯用戶信息”時的視圖頭聲明部分:

<%@ Page  Title="" Language="C#"   Inherits="Suteki.Shop.ViewPage<ShopViewData>"

好了,下面就開始 正文。

首先我們要看一下Suteki.Common\ViewData文件夾下面的幾個類,包括:IErrorViewData ,IMessageViewData,ViewDataBase等,其類圖如下:

從圖中看出, ViewDataBase是其體系“核心”, 其實現了 IMessageViewData, IErrorViewData這兩個接 口。其實體代碼如下:

public abstract class ViewDataBase : IMessageViewData, IErrorViewData
{
public string Message { get; set; }
public string ErrorMessage { get; set; }

public ViewDataBase WithErrorMessage(string errorMessage)
{
this.ErrorMessage = errorMessage;
return this;
}

public ViewDataBase WithMessage(string message)
{
this.Message = message;
return this;
}
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved