作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
默认情况下,MVC4
是否支持生成的输入字段的占位符
?我没有找到任何东西,所以我尝试实现自己的,但不幸的是,在生成控件时 Prompt = "E-Mail"
没有传递给 ViewData.ModelMetadata.Watermark
。为什么?
型号
public class LogOnModel
{
[Required]
[Display(Name = "E-Mail", Prompt = "E-Mail")]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
}
@Html.TextBoxFor(m => m.Email, new { placeholder = ViewData.ModelMetadata.Watermark })
我得到 html 代码,其中 placeholder
标记没有任何文本
<input data-val="true" data-val-regex="Please enter a valid e-mail address" data-val-required="The E-Mail field is required." id="Email" name="Email" placeholder="" type="text" value="" class="valid">
最佳答案
使用插件的替代方法是使用编辑器模板。您需要做的是在 Shared\EditorTemplates
文件夹中创建一个模板文件,并将其命名为 String.cshtml
。然后将其放入该文件中:
@Html.TextBox("",ViewData.TemplateInfo.FormattedModelValue,
new { placeholder = ViewData.ModelMetadata.Watermark })
然后在您的 View 中使用它,如下所示:
@Html.EditorFor(m=>Model.UnitPercent)
缺点是,这适用于 string
类型的属性,您必须为想要支持水印的每种type
创建一个模板。
关于asp.net-mvc - MVC4 输入字段占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16031385/
我是一名优秀的程序员,十分优秀!