使用Html.EditorFor()为文本框加上maxlength,placeholder等属性
2023-09-11 14:16:52 时间
当想通过Html.EditorFor()给文本框加上maxlength,placeholder等属性的时候,发现Html.EditorFor()没有提供可直接加上这些属性的重载方法,如何做到呢?
□ 思路
1、Html.EditorFor()有一个重载方法如下:
也许,可以把需要给文本框加上的属性(maxlength, placeholder,etc),封装成一个匿名对象,作为路由数据传递给一个模版。
2、Html.TextBox()正好有一个重载可以把路由数据作为它的htmlAttributes参数:
首先,在Views/Shared/下创建EditorTemplates文件夹,并在EditorTemplates文件夹下创建部分视图string.cshtml
@model string
<span>
@Html.TextBox("", @ViewData.TemplateInfo.FormattedModelValue, @ViewData)
</span>
然后,创建一个View Model:
namespace MvcApplication1.Models
{
public class Sample
{
public string Name { get; set; }
}
}
接着,控制器方法把强类型model传递到对应的视图中:
using System.Web.Mvc;
using MvcApplication1.Models;
namespace MvcApplication1.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View(new Sample());
}
}
}
最后,在强类型视图页,把需要给文本框加上的属性封装成匿名对象,作为路由数据传递给模版页。
@model MvcApplication1.Models.Sample
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@Html.EditorFor(s => s.Name,"string",new {maxlength=5,placeholder="用户名"})
□ 结果
由于有了placeholder,显示水印:
由于有了maxlength,最多只能输入5个字符:
在html代码中的input有了maxlength和placeholder属性:
□ 总结
Html.EditorFor()本身没有给input附加上属性的重载方法,只好把需要给input附加上的属性封装成匿名对象,作为路由数据交给模版视图页,在模版视图页Html.TextBox()把接收到的路由数据作为它的属性参数,最终显示出来。
相关文章
- html5中常被忘记的标签,属性
- 删除html标签或标签属性以及样式
- JavaScript の 内容属性(HTML属性attribute)和 DOM 属性(property)
- JS/HTML 保存图片到本地:HTML <a> download 属性
- PHP通用的XSS攻击过滤函数,Discuz系统中 防止XSS漏洞攻击,过滤HTML危险标签属性的PHP函数
- Js基础知识2-对象、对象属性全解
- HTML控件ID和NAME属性及在CS页面获得.ASPX页面中HTML控件的值
- 获取easyui calendar 属性
- scrollTop和scrollLeft属性
- 属性类:Properties
- HTML DOM print() 方法 ,html 打印
- reactjs组件的三大属性之props基本使用及props属性值检验
- 144. 授人以渔 - 如何查找 SAP UI5 官网上没有提到的控件属性的使用明细
- SAP CRM WebClient UI context node属性展开的执行逻辑
- Angular form控件原生HTML代码里ng-reflect-form属性和其值的生成时机
- 如何在TypeScript代码里获得HTML元素的css属性
- Angular Component class属性初始化和构造函数执行的先后顺序
- Unity技术手册 - 粒子基础主模块属性-下
- tomcat中jsp引用图片img的src属性带中文路径无法显示的解决
- gvim如何显示html属性代码提示? vim 如何显示 javascript属性及方法提示?
- jQuery 属性选择器
- JS 常用函数一(弹对话框、操作HTML元素、写HTML文档、写到控制台、查找元素、元素插入内容、改变HTML属性、计时)
- Js学习之拖拉事件(拖动属性)HTML5 drag API(HTML 拖放 API)
- 【CSS笔记】CSS布局相关属性(显示元素、文本溢出、元素浮动)
- Qt编写控件属性设计器
- 解决EF使用context.Database.SqlQuery时NotMapped属性列为空null的问题