net mvc EditorFor 怎么使用 placeholder

 我来答
百度网友bed337e
2016-07-20 · TA获得超过657个赞
知道小有建树答主
回答量:644
采纳率:83%
帮助的人:433万
展开全部
当想通过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,显示水印:

参考链接:http://www.cnblogs.com/darrenji/p/3640632.html
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式