是否可以设置TextBoxFor生成的输入类型

时间:2012-09-04 15:51:02

标签: asp.net-mvc-3 html5

我在一个表单中使用ASP.NET MVC 3 TextBoxFor,并希望使用type =“email”以便更轻松地输入至少一些移动设备,但无法找到如何使用TextBoxFor设置它。这不容易吗?

在视图中

@Html.LabelFor(m => m.Email)
@Html.TextBoxFor(m => m.Email)

在模型中

[StringLength(50)]
public string Email { get; set; }

(已经使用数据注释来保护DB中的大小约束)

4 个答案:

答案 0 :(得分:46)

尝试使用

@Html.TextBoxFor(m => m.Email, new { @type = "email" })

http://msdn.microsoft.com/en-us/library/ee703538.aspx(htmlAttributes)

答案 1 :(得分:3)

你的使用方法错误了!

在视图中使用EditorFor:

@Html.LabelFor(m => m.Email)
@Html.EditorFor(m => m.Email)

在模型中,添加[DataType( DataType.EmailAddress )]数据注释属性:

[DataType( DataType.EmailAddress )]
public string Email { get; set; }

答案 2 :(得分:2)

尝试将[DataType( DataType.EmailAddress )]添加到电子邮件属性中。

[DataType( DataType.EmailAddress )]
[StringLength(50)]
public string Email { get; set; }

答案 3 :(得分:1)

[StringLength(50)]
[DataType(DataType.EmailAddress, ErrorMessage = "Invalid Email Address")]
public string EmailAddress
    {
        get;
        set;

    }

尝试添加此内容。我认为它有效