如果您查看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语法错误。这是怎么做到的?
答案 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
字符(只有保留字才需要)。