ASP.NET MVC Razor HtmlHelper扩展和自定义控件

先看示例代码:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing; namespace MvcApplicationWeb
{
public static class HtmlExtensions
{
public static MvcHtmlString TestHtml(this HtmlHelper htmlHelper)
{
return MvcHtmlString.Create("<div style='font-size:18px;'>MyTestHtmlHelper</div>");
} public static string TestHtml(this HtmlHelper htmlHelper, string value)
{
return String.Format("<div>{0}</div>", value);
} public static MvcHtmlString JSHtml(this HtmlHelper htmlHelper)
{
return MvcHtmlString.Create("<script type=\"text/javascript\">alert('JSHtmlTest');</script>");
} public static string Label(this HtmlHelper helper, int target, string text)
{
TagBuilder tagBuilder = new TagBuilder("label")
{
InnerHtml = target.ToString()
};
tagBuilder.MergeAttribute("for", text);
return tagBuilder.ToString(TagRenderMode.Normal);
}
}
}

上面是扩展类的代码,类名要写成XXExtensions,不然不能在前台使用的。

上面自定义了三个控件,如果返回是MvcHtmlString 将会在页面已HTML形式显示,如果返回是string就会已字符显示

同时可以用TagBuilder来构建HTML

前台代码如下:

 @using MvcApplicationWeb;
@{
ViewBag.Title = "主页";
}
@section featured {
<section class="featured">
<div class="content-wrapper">
<hgroup class="title">
<h1>@ViewBag.Title.</h1>
<h2>@ViewBag.Message</h2>
</hgroup>
<p>
若要了解有关 ASP.NET MVC 的详细信息,请访问
<a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>。
该页提供 <mark>视频、教程和示例</mark> 以帮助你充分利用 ASP.NET MVC。
如果你对 ASP.NET MVC 有任何疑问,请访问
<a href="http://forums.asp.net/1146.aspx/1?MVC" title="ASP.NET MVC Forum">我们的论坛</a>。
</p>
</div>
</section>
}
<h3>下面是我们的建议:</h3>
@Html.TestHtml()
@Html.TestHtml("TestHtml")
@Html.JSHtml()
@Html.Label(,"")

前台注意的就是要引用命名空间!

上一篇:开源 java CMS - FreeCMS2.2 模型管理


下一篇:Mysql-报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost