这篇文章,我将带领大家学习HTML Helper。【PS:上一篇-->5.ASP.NET MVC 中的Area【区域】是什么】

HTML Helpers是用来创建HTML标签进而创建HTML控件的。HTML Helper仅仅是一个返回HTML字符串的方法。ASP.NET MVC 中有三种HTML Helpers:

1.Inline HTML Helper(内联HTML Helper):主要是通过使用Razor语法中的@helper标记来创建。内联HTML Helper仅仅只能在同一个视图中,被重复使用。如果想要在所有的视图中都能使用,有办法可以解决。待会会介绍。

2.Built-In-HTML Helpers(内置的HTML Helpers):这类的HTML Helper是HtmlHelper类的扩展方法,进一步分为3类:

2.1 标准HTML Helper【Standard HTML Helpers】:用来创建最常用得HTML标签。

2.2 强类型的HTML Helpers【Strongly Typed HTML Helpers】:这种是HTML通过Model类的属性生成,使用Lambda表达式来生成HTML。

2.3 模板化的HTML Helpers 【Templated HTML Helpers】:这种helper生成的HTML取决于Model类的属性。

3.自定义的HTML helpers【Custom HTML Helpers】:你可以通过使用HtmlHelper扩展方法,或者在工具类中使用静态方法来创建自定义的helper 方法。

1.先来看看内联的HTML Helper。

创建项目HTMLHelpersWithMVC,同时新建一个Home控制器,和Index视图:

视图页面:

运行一下:【效果图】

现在假如,我还有一个Test页面,也要显示这个,怎么办呢?我们直接在Test页面写一下看看:

看,报错了噢,内联方法只能在声明的视图页面使用噢,怎么办呢?我们可以这样做:

右键项目创建一个App_Code文件夹:

在App_Code文件夹下,创建一个分布视图:

然后,把刚才在Home控制器Index页面的内联Html Helper方法声明全部弄过来:

然后运行项目:看:

咋回事还是报错了,现在Index页面也报错了,哪里出问题了???

我们这样改:把App_Code文件夹下的视图页面,属性改成嵌入的资源和如果较新则复制

然后视图页面修改如下:

然后接着运行看看两个页面的效果:

看这样就实现了,可以在多个页面实现【内联HTML Helpers】Inline HTML Helpers了。

2.1 现在来看看,内置的HTML Helpers中的标准 HTML Helpers了。

运行效果如下:

2.2 现在开始学习 【Built-In HTML Helpers】内置的HTML之强类型HTML Helpers了:

在Models文件夹下创建一个UserInfo类

为了演示这个强类型的,我新建一个控制器Account,并创建Index视图:

运行程序:

2.3 现在看看模板化的HTML Helpers怎么做:

我们在Account控制器中,添加一个Temp方法:并创建Temp视图:

运行到Temp页面:

发现@Html.EditorForModel()自动为我们创建了控件。

3.最后我们来看看,怎么创建自定义HTML Helpers

创建一个Custom控制器:

创建一个CustomClass:

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;namespace HTMLHelpersWithMVC.Common

{    public static class CustomClass

{        ///

/// 扩展方法实现方式--创建提交按钮        ///

/// 扩展类对象

/// 按钮名称

/// 按钮值

///

public static MvcHtmlString CreateSubmit(this HtmlHelper helper, string name, string value)

{            var btn = "";            return new MvcHtmlString(btn);

}        ///

/// 静态类实现方式--创建提交按钮        ///

/// 按钮名称

/// 按钮值

///

public static MvcHtmlString CreateSubmit(string name, string value)

{            var btn = "";            return new MvcHtmlString(btn);

}

}

}

注意这个类CustomClass类必须要在程序根目录下创建,在视图中才能点出来【有智能提示】

正确的:

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;namespace HTMLHelpersWithMVC{    public static class CustomClass

{        ///

/// 扩展方法实现方式--创建提交按钮        ///

/// 扩展类对象

/// 按钮名称

/// 按钮值

///

public static MvcHtmlString CreateSubmit(this HtmlHelper helper, string name, string value)

{            string btn = "";            return new MvcHtmlString(btn);

}        ///

/// 静态类实现方式--创建提交按钮        ///

/// 按钮名称

/// 按钮值

///

public static MvcHtmlString CreateSubmit(string name, string value)

{            string btn = "";            return new MvcHtmlString(btn);

}

}

}

在Custom控制器的Index视图中:

运行程序:

好了,这篇文章到此为止就介绍完了,ASP.NET MVC HTML Helpers了,学会了么?

asp.net html helper,6. ASP.NET MVC 5.0 中的HTML Helper【HTML 帮助类】相关推荐

  1. ASP.NET MVC 3.0学习系列文章—Model in ASP.NET MVC 3.0

    系列文章 ASP.NET MVC 3.0学习系列文章-序 ASP.NET MVC 3.0学习系列文章--Razor and ASP.NET MVC 3.0 ASP.NET MVC 3.0学习系列文章- ...

  2. 我要学ASP.NET MVC 3.0(八): MVC 3.0 传递和保存你的Model

    概述 在 ASP.NET MVC 框架中,模型(Model)是负责核心应用程序或业务逻辑的应用程序部件. 模型对象通常从诸如 SQL Server 之类的永久存储区(如数据库)中访问数据,并对该数据执 ...

  3. 在asp.net 2.0中使用SqlBulkCopy类迁移数据

    在asp.net 2.0中使用SqlBulkCopy类迁移数据 (转) http://jackyrong.cnblogs.com/archive/2005/08/29/225521.html 我们经常 ...

  4. 在asp.net 2.0中使用SqlBulkCopy类迁移数据[转]

    我们经常要在一个表中将数据迁移到另一个表,当然,用的方法十分多了.在.net 2.0中,提供了一个sqlbulkcopy类,也可以实现如下的操作,下面简单介绍下.比如一个表如下 CREATE TABL ...

  5. 我要学ASP.NET MVC 3.0(一): MVC 3.0 的新特性

    摘要 MVC经过其1.0和2.0版本的发展,现在已经到了3.0的领军时代,随着技术的不断改进,MVC也越来越成熟.使开发也变得简洁人性化艺术化. 园子里有很多大鸟都对MVC了如指掌,面对问题犹同孙悟空 ...

  6. ASP.NET MVC 3.0学习系列文章--Razor and ASP.NET MVC 3.0

    系列文章 ASP.NET MVC 3.0学习系列文章-序 Razor and ASP.NET MVC 3.0 ASP.NET MVC 3.0学习系列文章-Controllers in ASP.NET ...

  7. (转) 一步一步学习ASP.NET 5 (四)- ASP.NET MVC 6四大特性

    转发:微软MVP 卢建晖 的文章,希望对大家有帮助.原文:http://blog.csdn.net/kinfey/article/details/44459625 编者语 : 昨晚写好的文章居然csd ...

  8. ASP.NET MVC 3.0(一): MVC 3.0 的新特性 摘要

    ASP.NET MVC 3.0(一): MVC 3.0 的新特性 摘要 ASP.NET MVC 3.0(二): MVC的概念及MVC 3.0开发环境 ASP.NET MVC 3.0(三): 初识MVC ...

  9. 一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序 - 强烈推荐!!!

    一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序 本文根据<Professional ASP.NET MVC 1.0>中微软牛人Scott Guthrie 提供 ...

最新文章

  1. 重新精读《Java 编程思想》系列之public,protected,private与无修饰符权限的区别...
  2. 在32位Windows上扩展虚拟内存(Labview)
  3. 等了这么久,就给我看这个?
  4. 【数据库原理及应用】经典题库附答案(14章全)——第八章:数据库并发控制
  5. 怎样在php中使用PDF文档功能
  6. oracle初级系列教程
  7. 编程在线--- 网站(IT技术学习、面试、交流)上线了
  8. python访问oracle_用Python操作Oracle
  9. Cesium:加载百度地图
  10. 教你自己训练的pytorch模型转caffe(二)
  11. 豆瓣API 不能访问的解决方法
  12. 通用计算机含义,当今的计算机其通用的名称应该是通用数字计算机,请简单描述包含的三层含义? (8.0分)...
  13. 系统集成项目管理工程师+android,系统集成项目管理工程师题库
  14. 初级者与转行者,大数据如何学习最高效,简历该如何优化?
  15. C#毕业设计——基于C#+asp.net+sqlserver的设备管理系统设计与实现(毕业论文+程序源码)——设备管理系统
  16. 旷视研究院获 IROS 2021 The HILTI SLAM 挑战赛冠军
  17. oracle的时间各式,Oracle9i日期格式几点说明
  18. jsvmp-某乎 x-zes-96 算法还原
  19. Android 热修复方案分析
  20. 这些年,这些挖掘机算法,这些反思

热门文章

  1. OpenSUSE11实现pam_mysql对FTP认证管理
  2. 什么样的外链才是高质量的外链|网站优化
  3. linux diff 远程文件,登录diff命令,以单独的文件输出在linux
  4. fastica和pca区别_PCA与ICA
  5. 数据库身份证号用什么类型_鱼缸要不要铺底?用什么铺底?这3种类型,我有4个建议...
  6. android设置屏幕高度和宽度设置,Android手机的屏幕宽高度和代码设置控件的宽高度...
  7. 浪潮网上测评没通过_快钱通过等保2.0认证 稳守用户资金信息安全
  8. 感恩节日海报设计模板|简洁优雅的花卉主题海报
  9. 设计轻松应用素材 | 免抠png和图标上哪找
  10. 配色没有灵感?最流行的配色案例!没有一个人不爱的