如何在 Html.EditorFor 中使用占位符属性?

Posted

技术标签:

【中文标题】如何在 Html.EditorFor 中使用占位符属性?【英文标题】:How can I use placeholder attribute with Html.EditorFor? 【发布时间】:2014-06-20 17:25:27 【问题描述】:

我想在 html.EditorFor 中使用占位符属性,所以我就像第一个答案一样:Html5 Placeholders with .NET MVC 3 Razor EditorFor extension?

但在最后一部分,我没有 EditorTemplates 文件夹,所以我创建了它,当我尝试创建 string.cshtml 视图时,我不能,因为名称“string”是保留的,所以我选择了 stringg.cshtml相反,它没有用!我必须在程序的其他地方更改名称吗?我确实很喜欢这个答案...

谢谢!

【问题讨论】:

【参考方案1】:

升级到MVC 5.1,就可以在EditorFor中使用HTML属性了:

@Html.EditorFor(m => m.variable, new  htmlAttributes = new  placeholder = "Your Placeholder Text"  )

http://www.asp.net/mvc/overview/releases/mvc51-release-notes

【讨论】:

+1 - 谢谢你的链接。如果您愿意升级到 5.1,我会说这是您的最佳选择。效果很好。 为什么必须在placeholder 属性之前使用@ 我不知道为什么,但就是这样。当您枚举 htmlAttributes 时,您需要使用 @ 来识别它们。 (@class, @id ...) @Yoda @Medo @ 在这种情况下是不必要的。 @ 仅在变量名称与任何 C# 关键字相同时使用,即 @class【参考方案2】:
 @Html.EditorFor(model => model.members_ssn, new  htmlAttributes = new  @class = "form-control", placeholder = "Your Example Here"  )

【讨论】:

您介意花几分钟解释一下您的代码在做什么吗?【参考方案3】:

这适用于 MVC 5。

就我而言,我希望从模型元数据中设置占位符,如下所示:

@Html.EditorFor(model => model.name, new  htmlAttributes = new  @class = "form-control", placeholder = Html.DisplayNameFor(x => x.name)  )

【讨论】:

【参考方案4】:

当使用TextBoxForTextAreaFor 而不是EditorFor 时,请仅使用@Medo 答案中的内部键值对,因为该方法直接需要一个htmlAttributes 对象:

@Html.TextBoxFor(m => m.variable, new  placeholder = "Your Placeholder Text" )

(我意识到这与最初的问题无关,但是当我早些时候登陆此页面时,如果我在这里寻找如何将占位符文本添加到 Html.TextAreaFor 的答案,这对我有帮助!)

【讨论】:

【参考方案5】:

使用一些 jquery,例如: $("#FirstName").attr("placeholder", "不要输入姓名 - 使用搜索按钮");

【讨论】:

以上是关于如何在 Html.EditorFor 中使用占位符属性?的主要内容,如果未能解决你的问题,请参考以下文章

SQL 语句在Java中如何使用占位符?

如何在输入中仅使用占位符斜体

如何在 .yml 文件中使用属性占位符

JDBC中?占位符的使用说明

将占位符添加到 UITextField,如何以编程方式快速设置占位符文本?

如何在 AngularJS 中显示占位符图像