将Html.EditorFor替换为Bootstrap Toggle

Replace Html.EditorFor for Bootstrap Toggle

本文关键字:Bootstrap Toggle 替换 Html EditorFor      更新时间:2024-01-12

当前我将Html.EditorForbool?字段结合使用,不知道是否可以用Bootstrap Toggle替换它。

我尝试过以下几种:

ViewBag.News = Convert.ToBoolean(model.News) ? "Yes" : "No";
@Html.HiddenFor(model => model.News)
<input name="news" type="checkbox" value="@ViewBag.News" data-toggle="toggle" data-off="No" data-on="Yes" data-onstyle="success" />

value字段似乎被忽略了,看看http://www.bootstraptoggle.com/上的示例,就看不到值的使用,这很奇怪,因为它最初是一个复选框。

任何关于如何将模型数据绑定到Bootstrap data Toggle组件的想法都将不胜感激:-)

对于MVC 5来说,这似乎很有效:

@Html.EditorFor(model => model.IsPayed, 
new { htmlAttributes = 
new { data_toggle = "toggle", data_on = "Payed", data_off = "Not payed", data_onstyle = "success", data_offstyle = "danger", type = "checkbox" } })

在htmlAttributes中使用_而不是-,它们会传递并转换为-。(IsPayed是模型中的布尔值)

假设1表示一个选中的字段,则以下内容应该有效:

<input name="news" type="checkbox" @(ViewBag.News == "Yes" ? "checked" : "")
             data-toggle="toggle" data-off="No" data-on="Yes" data-onstyle="success"/>