c# - 使用 twitter bootstrap radio-button 作为 html.radiobutton 的替代品

标签 c# asp.net-mvc twitter-bootstrap

我有几个单选按钮

    <p>@Html.RadioButton("selected", "img")img
    @Html.RadioButton("selected", "input")input
    @Html.RadioButton("selected", "script")script
    @Html.RadioButton("selected", "link")link
    @Html.RadioButton("selected", "form")form</p>

我想使用 twitter bootstrap 的 btn-group,buttons-radio 作为样式来替代这些单选按钮,我尝试添加的代码是

    <div class="btn-group" data-toggle="buttons-radio">
    <button type="button" class="btn" name="selected" value="a">a</button>
    <button type="button" class="btn" name="selected" value="img">img</button>
    <button type="button" class="btn" name="selected" value="input">input</button>
    <button type="button" class="btn" name="selected" value="script">script</button>
    <button type="button" class="btn" name="selected" value="link">link</button>
    <button type="button" class="btn"  name="selected" value="form">form</button>
    </div>

在我的 Controller 中,我使用 FormCollection 作为从选中的单选按钮获取值的方法,但我想使用 Bootstrap css 而不是普通的 @Html.radiobutton。

            string selectedTechnology = form["selected"];
            List.UrlType = selectedTechnology;

我觉得这不是正确的方法,因为助手可能与 formcollection 一起工作并且它不知道 bootstrap css 按钮是什么,但如果有实现它的方法,那就是很棒。

更新:

所以...这是我一直在寻找的解决方案

使用 bootstrap css 的单选按钮

<div id="radios" class="btn-group view-opt-btn-group" data-toggle="buttons-radio">
<button type="button" class="btn" name="option-a" value="a">a</button>
<button type="button" class="btn" name="option-img" value="img">img</button>
<button type="button" class="btn" name="option-script" value="script">script</button>
<button type="button" class="btn" name="option-link" value="link">link</button>
<button type="button" class="btn" name="option-form" value="form">form</button>
<input type="hidden" name="option" value="0" />
</div>

我创建了一个 jscript 点击函数

<script type="text/jscript">
    $("body").find("#radios").children().each(function () {
        $(this).bind('click', function () {
            $("input[name=option]").val(this.value);
        });
    });
</script>

在我的 Controller 中,我使用 FormCollection 将选定的按钮添加到我的模型中

        string selectedTechnology = form["option"];
        whiteList.UrlType = selectedTechnology;

希望这对您有所帮助。

最佳答案

我还没有真正使用过 Twitter Bootstrap (只是仔细阅读了它),而且 .NET 不是我的强项,但是:

1) 您需要使用带有 type="radio"的 input 来制作单选按钮,而不是按钮标签。

2) twitter bootstrap 提供了 .radio 和 .inline 类以应用于输入元素的父元素,如标签:

<label class="radio">
  <input type="radio" name="selected" value="..." />
  Text to come after the radio button
</label>

3) @Html.RadioButton 采用第三个参数,一个对象,用于指定属性:

@Html.RadioButton("selected", "form", new { class = "class" });

希望对您有所帮助。

关于c# - 使用 twitter bootstrap radio-button 作为 html.radiobutton 的替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13705625/

相关文章:

c# - 在独立应用程序上使用 ADFS 进行 Windows 身份验证

c# - 为什么创建 GraphicsDevice 会导致实例化时出现 "unexpected error"错误?

asp.net - Linq 无法识别查询中的解析

asp.net-mvc - 如何在 Html.TextBox 助手中设置 css 类?

javascript - bootstrap-datepicker 在选择日期时不会更新 AngularJS 模型

c# - 如何在 ListView 中显示类中的嵌套列表

C# 从元数据中获取视频文件持续时间

javascript - Bootstrap 3 悬停时折叠

asp.net-mvc - 扩展 AuthorizeAttribute 以检测登录的非用户(如何处理用户授权)

javascript - Bootstrap 游览模板未在所有按钮上应用 id