MVC中的自定义控件

时间:2023-03-09 13:23:56
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("好消息!", "你好,这是测试消息!")

就是这么简单!