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

Monorail中的Helper是绑定在Controller上的
形如:
[Helper(typeof(ChHelper))]
abstract public class BaseBlockController : SmartDispatcherController{
}
但本身Helper是使用在View中的,所以 Monorail这种定义方式 略微违背了分离之道

那么Asp.net MVC中是如何绑定自定义的Helper的呢?

其实Asp.net MVC的View也有代码文件即类似 index.aspx.cs
代码文件继承于ViewPage

下面用一个实例来讲
我首先我自定义一个Helper
实现了对字符串的一些小扩展
public class StringHelper
{
    
public string Red(string str) {
        
return string.Format(@"<span style=""color:red"">{0}</span>",str);
    }

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

}
那么我们怎样才能在View使用它呢?
我们可以在View的cs中写以下代码
        public StringHelper Str {
            
get;
            
set;
        }
即为
public partial class Index : ViewPage
    
{
        
public StringHelper Str {
            
get;
            
set;
        }

    }


这样我们就可以在View中使用
<%=Str.Red(ViewData["title"])%>
这样的代码了

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

同样的,Master文件中也可以通过类似的方法来完成使用自定义的Helper
posted @   重典  阅读(5076)  评论(27编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示