• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

先看示例代码:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.Mvc;
 6 using System.Web.Routing;
 7 
 8 namespace MvcApplicationWeb
 9 {
10     public static class HtmlExtensions
11     {
12         public static MvcHtmlString TestHtml(this HtmlHelper htmlHelper)
13         {
14             return MvcHtmlString.Create("<div style='font-size:18px;'>MyTestHtmlHelper</div>");
15         }
16 
17         public static string TestHtml(this HtmlHelper htmlHelper, string value)
18         {
19             return String.Format("<div>{0}</div>", value);
20         }
21 
22         public static MvcHtmlString JSHtml(this HtmlHelper htmlHelper)
23         {
24             return MvcHtmlString.Create("<script type=\"text/javascript\">alert('JSHtmlTest');</script>");
25         }
26 
27         public static string Label(this HtmlHelper helper, int target, string text)
28         {
29             TagBuilder tagBuilder = new TagBuilder("label")
30             {
31                 InnerHtml = target.ToString()
32             };
33             tagBuilder.MergeAttribute("for", text);
34             return tagBuilder.ToString(TagRenderMode.Normal);
35         }
36     }
37 }

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

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

同时可以用TagBuilder来构建HTML

 

前台代码如下:

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

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NET MVC Authorization 自定义跳转发布时间:2022-07-10
下一篇:
收藏:构建安全的 ASP.NET 应用程序发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap