使用扩展方法创建 HTML Helper


======================================================
注:本文源代码点此下载
======================================================

html helper 是一种返回字符串的方法。字符串可以代表希望的任何类型内容。例如,可以使用 html helper 呈现标准的 html 标记,如 html 和标记。也可以使用 html helper 呈现更复杂的内容,如标签条或数据库数据的 html 表。

asp.net mvc framework 包含以下一系列标准 html helper(非完整列表):

html.actionlink()

html.beginform()

html.checkbox()

html.dropdownlist()

html.endform()

html.hidden()

html.listbox()

html.password()

html.radiobutton()

html.textarea()

html.textbox()

例如,程序清单 1 中的表单在两个标准 html helper 的帮助下呈现,如图 1 所示。此表单使用html.beginform()和html.textbox() helper 方法呈现了一个简单的 html 表单。

图 1:使用 html helper 呈现的页面(单击查看大图)

程序清单 1 views\home\index.aspx

index

first name:

last name:

1

html.beginform() helper 方法用于创建开始和结束 html标记。请注意,html.beginform() 方法在 using 语句中调用。using 语句确保 标记在 using 块的结尾处结束。

如果愿意,可以不创建 using 块,而是调用 html.endform() helper 方法来结束 标记。不管用哪种方法创建开始和结束 标记,都显得非常直观。

程序清单 1 中使用 html.textbox() helper 方法呈现 html标记。如果在浏览器中选择查看源代码,则可以看到程序清单 2 中的 html 源代码。请注意,源代码包含标准的 html 标记。

重要事项:请注意,html.textbox()html helper 使用标记而不是标记呈现。如果不包括等号,则浏览器中不会呈现任何内容。

asp.net mvc framework 包含少量的 helper。大多数情况下,需要使用自定义 html helper 扩展 mvc framework。在本教程后面的部分中,我们将学习创建自定义 html helper 的两种方法。

1、使用静态方法创建 html helper

2、使用扩展方法创建 html helper

上面载自msdnhttp://msdn.microsoft.com/zh-cn/dd408818.aspx

下面的例子就是用第二种方法自定义一个html.table标签

创建一个静态类htmlhelper_base(必须静态)

代码

using system;

using system.data;

using system.web.mvc;

namespace mvcapp

{

public static class htmlhelper_base

{

///

///table 标签

///

///

///

样式名字

///

table对象

///

public static string table(this htmlhelper helper, string clsname,object obj)

{

datatable dt = (datatable)obj;

system.text.stringbuilder sb = new system.text.stringbuilder();

if (dt != null)

{

sb.append("" + clsname + "' >");

sb.append("

");

foreach (datacolumn item in dt.columns)

{

sb.append("

");

sb.append(item.columnname);

sb.append("");

}

sb.append("");

foreach (datarow dr in dt.rows)

{

sb.append("

");

foreach (datacolumn dc in dt.columns)

{

sb.append("

");

sb.append(dr[dc.columnname].tostring());

sb.append("");

}

sb.append("");

}

sb.append("");

}

return sb.tostring();

}

}

}

在前台页面引用该类的命名空间()即可像asp.net mvc framework 中标准的 html helper 一样工作了

aspx页面代码

div>= html.table("clsname", viewdata["table"] )%> div>

通过这种方法,我们可以定义出很多控件来,非常方面使用。当然,我只是简单写了一下,抛砖引玉

小菜一个,别扔砖啊


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值