天天看點

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

Monorail中的Helper是綁定在Controller上的

形如:

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

[Helper(typeof(ChHelper))]

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

abstract public class BaseBlockController : SmartDispatcherController

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

{

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

}

但本身Helper是使用在View中的,是以 Monorail這種定義方式 略微違背了分離之道

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

其實Asp.net MVC的View也有代碼檔案即類似 index.aspx.cs

代碼檔案繼承于ViewPage

下面用一個執行個體來講

我首先我自定義一個Helper

實作了對字元串的一些小擴充

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

public class StringHelper

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

    public string Red(string str) 

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

        return string.Format(@"<span style=""color:red"">{0}</span>",str);

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

    }

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

    public string Green(string str) 

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

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

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

那麼我們怎樣才能在View使用它呢?

我們可以在View的cs中寫以下代碼

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

        public StringHelper Str 

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

            get;

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

            set;

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

        }

即為

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

public partial class Index : ViewPage

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

這樣我們就可以在View中使用

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

<%=Str.Red(ViewData["title"])%>

這樣的代碼了

如果這個Helper你想不僅在此一個檔案中使用

那麼可以通過将屬性 寫在一個BaseViewPage的基類中 然後所有的View都繼承于自定義的BaseViewPage來實作

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

繼續閱讀