MVC4.0 扩展辅助方法

新年第一天上班,写个博客开头吧!

在MVC中,辅助类是很常见的,比如说,Html.TextBox()、Html.DropDownListFor()等,这些都是微软帮我们封装好的,可以直接调用的,它们解析出来的结果都是一段Html代码,而实际项目中,我们可能需要自己去扩展一些我们需要的辅助类,比如说下面这段代码:

@UserHelpers.UserMsg(this.Html, ViewBag.Msg, ViewBag.MsgType),它的作用是用于系统消息提示。

我们转到它的定义看看:

 1 public static MvcHtmlString UserMsg(this HtmlHelper html, string msg, string msgType)
 2         {
 3             TagBuilder tb = new TagBuilder("div");
 4             tb.AddCssClass("alert divShadow " + msgType);
 5             tb.GenerateId("alertMsg");
 6 
 7             TagBuilder tagItem1 = new TagBuilder("a");
 8             tagItem1.AddCssClass("close");
 9             tagItem1.Attributes.Add("href", "#");
10             tagItem1.Attributes.Add("data-dismiss", "alert");
11             tagItem1.SetInnerText("×");
12             tb.InnerHtml += tagItem1.ToString();
13 
14             TagBuilder tagItem2 = new TagBuilder("strong");
15             tagItem2.GenerateId("msgContent");
16             tagItem2.SetInnerText(msg);
17             tb.InnerHtml += tagItem2.ToString();
18 
19             return MvcHtmlString.Create(tb.ToString());
20         }
View Code

UserHelper是辅助类名,UserMsg是辅助方法名,它包括了三个参数,第一个是系统默认的,后两个是我们写进去的。并且,要在View中生成Html代码,我们需要指定辅助方法的返回类型为MvcHtmlString.
方法内代码解释:

TagBuilder用于生成Html标签。

当然,想要在View中显示什么内容,需要自己去拼接啦。

完了,写得好简单,哈哈,祝自己在新的一年里工作顺利!

 

posted @ 2016-02-17 10:25  又沙又甜  阅读(270)  评论(0编辑  收藏  举报