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 }
UserHelper是辅助类名,UserMsg是辅助方法名,它包括了三个参数,第一个是系统默认的,后两个是我们写进去的。并且,要在View中生成Html代码,我们需要指定辅助方法的返回类型为MvcHtmlString.
方法内代码解释:
TagBuilder用于生成Html标签。
当然,想要在View中显示什么内容,需要自己去拼接啦。
完了,写得好简单,哈哈,祝自己在新的一年里工作顺利!