Tom*_*mas 46 asp.net-mvc asp.net-mvc-4
MVC4
默认情况下是否支持placeholders
生成的输入字段?我没有找到任何东西,所以我试图实现自己的,但不幸的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 })
Run Code Online (Sandbox Code Playgroud)
我得到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">
Run Code Online (Sandbox Code Playgroud)
von*_* v. 45
An alternative to using a plugin is using an editor template. What you need to do is to create a template file in Shared\EditorTemplates
folder and call it String.cshtml
. Then put this in that file:
@Html.TextBox("",ViewData.TemplateInfo.FormattedModelValue,
new { placeholder = ViewData.ModelMetadata.Watermark })
Run Code Online (Sandbox Code Playgroud)
然后在您的视图中使用它,如下所示:
@Html.EditorFor(m=>Model.UnitPercent)
Run Code Online (Sandbox Code Playgroud)
缺点是,这适用于类型属性string
,您必须为每个type
要支持水印的模板创建模板.
小智 41
我这样做了
模型中的字段:
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
Run Code Online (Sandbox Code Playgroud)
剃刀:
<li>
@Html.TextBoxFor(m => m.UserName, new { placeholder = Html.DisplayNameFor(n => n.UserName)})
</li>
Run Code Online (Sandbox Code Playgroud)
Pan*_*nos 27
当然它确实:
@Html.TextBoxFor(x => x.Email, new { @placeholder = "Email" })
Run Code Online (Sandbox Code Playgroud)
rea*_*eaz 13
您可以轻松添加Css类,占位符等,如下所示:
@Html.TextBoxFor(m => m.Name, new { @class = "form-control", placeholder="Name" })
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
这有效:
@Html.TextBox("name", null, new { placeholder = "Text" })
Run Code Online (Sandbox Code Playgroud)
有这样的方法来绑定占位符:
1)使用MVC数据注释:
模型:
[Required]
[Display(Prompt = "Enter Your First Name")]
public string FirstName { get; set; }
Run Code Online (Sandbox Code Playgroud)
剃刀语法:
@Html.TextBoxFor(m => m.FirstName, new { placeholder = @Html.DisplayNameFor(n => n.UserName)})
Run Code Online (Sandbox Code Playgroud)
2)使用MVC数据注释但使用DisplayName:
模型:
[Required]
[DisplayName("Enter Your First Name")]
public string FirstName { get; set; }
Run Code Online (Sandbox Code Playgroud)
剃刀语法:
@Html.TextBoxFor(m => m.FirstName, new { placeholder = @Html.DisplayNameFor(n => n.UserName)})
Run Code Online (Sandbox Code Playgroud)
3)不使用MVC数据注释(推荐):
剃刀语法:
@Html.TextBoxFor(m => m.FirstName, new { @placeholder = "Enter Your First Name")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
120473 次 |
最近记录: |