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 : SmartDispatcherControllerAsp.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中的使用)        
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中的使用)    }


这样我们就可以在View中使用
Asp.net Mvc Framework 十一 (自定义Helper在MVC中的使用)<%=Str.Red(ViewData["title"])%>
这样的代码了

如果这个Helper你想不仅在此一个文件中使用
那么可以通过将属性 写在一个BaseViewPage的基类中 然后所有的View都继承于自定义的BaseViewPage来实现

同样的,Master文件中也可以通过类似的方法来完成使用自定义的Helper
上一篇:[推荐] BC/Beyond Compare(差异比较软件)


下一篇:在source insight中加入TortoiseSVN的功能