[转]自定义ASP.NET MVC Html辅助方法
本文转自:http://www.cnblogs.com/myshell/archive/2010/05/09/1731269.html
在ASP.NET MVC中,Html辅助方法给我们程序员带来很多方便,其重要性也就不言自明。有时候,我们不想重复地写一些HTML代码,或者MS没有提供我们想要的那个HTML标签的Html辅助方法,那么,我们就可以通过自己定义一个Html扩展方法来达到这个目的。
比如,到目前为止,Html扩展方法中没有关于<input type="file" />这类标签的辅助方法,那么我们就可以自已实现一个。本文以实现<input type="file" />标签为例,演示如何实现自定义Html扩展方法。
一、实现自定义弱类型Html扩展方法
其实实现自定义Html扩展方法并不难,有兴趣的同学可以去看下MVC源代码,关于Html扩展方法部分。要用到System.Web.Mvc命名空间下的TagBuilder类,MvcHtmlString类。TagBuilder类为Html辅助方法生成HTML标签,MvcHtmlString代表HTML编码的字符串。扩展方法代码如下所示:
代码
需要特别提醒的是,扩展方法类所在的命名空间最好设置为System.Web.Mvc,这样,我们在View中可以通过智能感知轻易找到,也不容易出错或者无法通过VS智能感知找到我们自定义的Html辅助方法,可以为我们省去很多不必要的麻烦。将上面代码编译,我们即可在View中通过智能感知看到我们自定义的Html辅助方法。如下图所示:
使用方法和其它Html辅助方法一样,如下代码所示:
需要说明的是,本例所示是为了生成<input type="file">标签,是不用设置值的,读者可以通过自身情况定义扩展方法。然后运行,通过浏览器查看HTML源代码,如下图所示:
二、实现自定义强类型Html辅助方法
强类型辅助方法的一个好处是,我们可以通过编译器为我们检测一些错误,为我们节省一些排错的时间与精力。所以,强类型Html辅助方法是不可缺少的。代码如下:
代码
然后我们编译,在View中,我们就可以通过智能感知看到我们新扩展的强类型Html辅助方法了。如下图所示:
我们可以通过如下代码使用新扩展的Html辅助方法:
运行,我们通过浏览器查看生成的Html源代码如下图所示:
三、为标签错误输入添加CSS支持
对于要求输入的标签,如Text,如果用户输入错误内容,我们可以为当前标签添加CSS错误提示,为用户提供一个更加友好、人性化的界面。代码如下所示:
代码
将以上代码复制到我们自定义的扩展方法的返回MvcHtmlString字符串之前即可。
四、总结
本文通过演示如果实现自定义<input type="file" />标签的Html辅助方法,展示了如何在ASP.NET MVC中实现自定义Html辅助方法。对于ASP.NET MVC程序员来说,这是非常实用的。
转载于:https://www.cnblogs.com/freeliver54/archive/2013/04/26/3044598.html
[转]自定义ASP.NET MVC Html辅助方法相关推荐
- 第四章 ASP.NET MVC HTML辅助方法生成表单标签具体用法
(1.)使用HTML辅助方法在试图文件创建表单,参考代码如下: 代码中使用using语法将其包含,以确保form标签在using语句结尾时输出form标签,如果不适用using语句,则需要手动调用 @ ...
- asp.net+mvc+html辅助,ASP.NET MVC使用Ajax的辅助的解决方法
前言:前面我们已经简单的介绍过了MVC如何Jquery,因为我们如果使用Ajax的话必须要了解Jquery,这篇博客我们将大致了解一下ASP.NET MVC如何使用Ajax的辅助方法,此博客是我的读书 ...
- [转]自定义ASP.NET MVC JsonResult序列化结果
本文转自:http://blog.163.com/luckcq@yeah/blog/static/17174770720121293437119/ 最近项目中前台页面使用EasyUI的jQuery插件 ...
- 【小技巧】自定义asp.net mvc的WebFormViewEngine修改默认的目录结构
先看一下我的解决方案的目录结构吧--- 一:先把Controller程序提取出来 默认的情况是所有的****Controller.cs文件都会放在Web程序集下的一个叫Controllers的文件夹下 ...
- 自定义ASP.NET MVC JsonResult序列化结果
最近项目中前台页面使用EasyUI的jQuery插件开发中遇到,EasyUI Form中的Datebox组件绑定ASP.NET MVC返回的DateTime类型的数据错误,因为ASP.NET MVC返 ...
- mvc html 辅助方法,MVC HTML辅助类常用方法记录
(1)@Html.DisplayNameFor(model => model.Title)是显示列名, (3)@Html.ActionLink("Create New", & ...
- asp.net mvc 上传到服务器 图片不显示,asp.net MVC上传图片完整方法
图片上传 自动创建文件夹并重命名(带缩略图) 后台: [HttpPost] public ActionResult WanSell_UploadPicture(ProductGalleryModels ...
- Scott的ASP.net MVC框架系列文章之四:处理表单数据(2)
前几周我发表了一系列文章介绍我们正在研究的ASP.NET MVC框架.ASP.NET MVC框架为你提供了一种新的开发Web应用程序的途径,这种途径可以让应用程序变得更加层次清晰,而且更加有利于对代码 ...
- ASP.NET MVC 框架
ASP.NET MVC 框架 [原文地址]ASP.NET MVC Framework [原文发表日期] Sunday, October 14, 2007 10:41 PM 过去的几年里,很多人要求AS ...
最新文章
- 笑傲江湖霍建华版电子相册
- 吴恩达深度学习课程deeplearning.ai课程作业:Class 4 Week 2 Keras - Tutorial - Happy House
- SpringFox 3.0.0(包含springfox-swagger2-3.0.0)——无法访问/swagger-ui.html解决方案
- 硬肝!超详细的Python文件操作知识
- kaggle用命令提交
- 什么意思中文翻译_os常见意思介绍
- Python中几个操作列表的内置函数filter(),map(),reduce(),lambda
- django model对象修改_从0到1搭建个人博客-Django(三)
- 协议圣经 五 rtsp client
- 用Scala实现简单的Web和API服务器
- 数据结构上机实践第14周项目1(2) - 验证算法(分块查找)
- Android-Universal-Image-Loader学习笔记(二)--LruDiscCache
- Codeforces Round #704 (Div. 2) D - Genius‘s Gambit 思维+构造
- 计算机二级python刷题软件排行榜_计算机二级office刷题软件求推荐?
- 计算机体检作用,QQ电脑管家什么是电脑体检?有什么作用?
- Docker hub配置国内加速器
- 玉堂金阙百度云php100,玉堂金阙(全二册)
- 0724 静态购物网页
- java面试题总结及答案,使用/教程/实例
- H5怎么禁用长按复制的功能?