MVC中的自定义控件

MVC中的控件都是HtmlHelper的扩展方法(不了解扩展方?法请阅读扩展方法),比如@Html.ActionLink,F12可以看到它是这样写的:

 public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName);

同理,自定义控件也是写HtmlHelper的扩展方法。

例:

实现一个显示消息的控件

代码:写一个扩展方法,第一个参数用this修饰符类型是HtmlHelper,第二个参数是消息标题,第三个参数是消息内容,如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;

namespace System.Web.Mvc.Html
{
    public static class MessageLabelExtensions
    {
        public static HtmlString MessageLable(this HtmlHelper htmlHelper, string title, string message)
        {
            StringBuilder strHtml = new StringBuilder();
            strHtml.Append("<div>");
            strHtml.Append("<h3>"+title+"</h3>");
            strHtml.Append("<p>"+message+"</p>");
            strHtml.Append("</div>");
            return new HtmlString(strHtml.ToString());
        }
    }
}

完成了,可以在view中使用这个控件了!

@Html.MessageLable("好消息!", "你好,这是测试消息!")

就是这么简单!

posted @ 2014-03-25 17:13  幸运的程序员  阅读(558)  评论(0编辑  收藏  举报