使用 - 名称添加属性

时间:2014-03-24 09:13:02

标签: html asp.net-mvc razor

在MVc中我正在使用Html.TextboxFor()控件

我有输入类型控制如下。

<input id="phoneNumber" type="text" class="phoneNumber form-control" value="@actorPhone.PhoneNumber" data-phoneType ="@actorPhone.PhoneTypeTd" data-actorId ="@Model.ActorId" maxlength="30"/>

我想将此输入控件更改为MVC

@Html.TextBoxFor(m=>m.phoneNumber,new {@class = "phoneNumber", maxlength = "30"})

我如何将数据-phoneType和data-actorId属性添加到html控件,因为 - HTML Attribute的属性中不允许这样做。

3 个答案:

答案 0 :(得分:1)

您可以设置下划线,Razor会将其渲染为减号/破折号:

@Html.TextBoxFor(m => m.phoneNumber, 
      new { data_phoneType = "phone type",  
            @class = "phoneNumber", 
            maxlength = "30"})

答案 1 :(得分:1)

使用下划线_

Razor引擎非常智能,可以将属性名称中的下划线渲染到相应的破折号,从而产生所需的类似HTML5的属性

示例:

    @Html.TextBoxFor(m=>m.phoneNumber,
    new {@class = "phoneNumber", maxlength = "30", 
    data_phoneType = YOUR_VALUE_HERE,    
    data-actorId=YOUR_VALUE_HERE })

这将导致您想要的输出。

希望这有助于:)

答案 2 :(得分:1)

使用data_*属性,例如

@Html.TextBoxFor(m=>m.phoneNumber,
    new {
        data_phoneType=actorPhone.PhoneTypeTd, 
        @class = "phoneNumber", 
        maxlength = "30"
        })