1. 程式人生 > >Asp.net Mvc Framework 十一 (自定義Helper在MVC中的使用)

Asp.net Mvc Framework 十一 (自定義Helper在MVC中的使用)

Monorail中的Helper是繫結在Controller上的
形如:
[Helper(typeof(ChHelper))]
abstractpublicclass BaseBlockController : SmartDispatcherController{
}
但本身Helper是使用在View中的,所以 Monorail這種定義方式 略微違背了分離之道

那麼Asp.net MVC中是如何繫結自定義的Helper的呢?

其實Asp.net MVC的View也有程式碼檔案即類似 index.aspx.cs
程式碼檔案繼承於ViewPage

下面用一個例項來講
我首先我自定義一個Helper
實現了對字串的一些小擴充套件
publicclass StringHelper
{
    
publicstring Red(string str) {
        
returnstring.Format(@"<span style=""color:red"">{0}</span>",str);
    }

    
publicstring Green(string str) {
        
returnstring.Format(@"<span style=""color:green"">{0}</span>", str);
    }

}
那麼我們怎樣才能在View使用它呢?
我們可以在View的cs中寫以下程式碼
public StringHelper Str {
            
get;
            
set;
        }
即為
publicpartialclass Index : ViewPage
    
{
        
public StringHelper Str {
            
get;
            
set;
        }

    }

這樣我們就可以在View中使用
<%=Str.Red(ViewData["title"])%> 這樣的程式碼了

如果這個Helper你想不僅在此一個檔案中使用
那麼可以通過將屬性 寫在一個BaseViewPage的基類中 然後所有的View都繼承於自定義的BaseViewPage來實現

同樣的,Master檔案中也可以通過類似的方法來完成使用自定義的Helper