[DataType]注释的问题

时间:2014-02-17 02:19:11

标签: c# asp.net asp.net-mvc-4 annotations data-annotations

这是我在模型中的代码:

[Required(ErrorMessage = "The url is required")]
[Url(ErrorMessage = "Invalid URL")]
public String Url { get; set; }

这是我在视图中的代码:

<div class="input-group">
    <span class="input-group-addon glyphicon glyphicon-link"></span>
    @Html.TextBoxFor(m => m.Url, new { @class = "form-control", placeholder = "Feed URL" })
    @Html.ValidationMessageFor(m => m.Url)
</div>*emphasized text*

问题是 Url注释应该使用属性 type =“url”

呈现输入

这就是我得到的:

<input class="form-control" data-val="true" data-val-required="The url is required" data-val-url="Invalid URL" id="Url" name="Url" placeholder="Feed URL" type="text" value="">

这就是我应该得到的:

<input class="form-control" data-val="true" data-val-required="The url is required" data-val-url="Invalid URL" id="Url" name="Url" placeholder="Feed URL" type="url" value="">

第一个的类型是“text”,我应该得到的输入是“url”。

1 个答案:

答案 0 :(得分:0)

您可以手动设置类型,即

new {@class =“form-control”,占位符=“Feed网址”, type =“url”}

因为您使用的是Html.TextBoxFor,它会将该类型呈现为文本。

您可以随时使用Html.EditorFor,然后创建自己的编辑器模板“url”并在viewdata中传递所需的html属性。