如何在@ Html.TextBoxFor中使用bootstrap-formhelpers数据格式?

时间:2017-04-24 00:43:29

标签: asp.net-mvc twitter-bootstrap razor formatting

如果您查看this bootstrap documentation表格帮助者,我可以使用

<input type="text" class="form-control bfh-phone" data-format="+1 (ddd) ddd-dddd" placeholder="Cell or Home Phone" required>

在用户输入电话号码时格式化文本框。我想使用@Html.TextBoxFor@Html.EditorFor来做同样的事情。我如何在mvc中实现这一目标?这是我尝试过的:

<input type="text" class="form-control bfh-phone" data-format="+1 (ddd) ddd-dddd" value="@Model.PhoneNumber" placeholder="Cell or Home Phone" required>

@Html.EditorFor(model => model.PhoneNumber, new { htmlAttributes = new { @class = "form-control bfh-phone", @placeholder = "Cell or Home Phone", @data-format="+1 (ddd) ddd-dddd" } })

这两个都会产生object reference razor语法错误。这是怎么做到的?

1 个答案:

答案 0 :(得分:3)

当使用EditorFor()接受object添加html属性的重载时,您需要使用_(下划线)字符,该字符将被转换为- (连字符)由剃刀引擎。使用data_format = "..",而不是data-format = ".."

@Html.EditorFor(m => m.PhoneNumber, new { htmlAttributes = 
    new { @class = "..", placeholder = "..", data_format="+1 (ddd) ddd-dddd" } })

另请注意,您不需要@placeholder的前导data_format字符(只有保留字才需要)。