【问题标题】:Group radio buttons in foreach loop in MVC razor view?在MVC剃刀视图中的foreach循环中分组单选按钮?
【发布时间】:2013-08-05 02:47:05
【问题描述】:

我试图通过在 html 帮助中提供额外的 html 属性来将一组单选按钮分组在循环内,如下所示 -

<ol class="Opt">
    @foreach (var opt in quest.Options)
    {
        <li class="Opt">
            @Html.RadioButtonFor(o => opt.Title, opt.Title, new { @name = "uniqueRadio"})
            @Html.Label(opt.Title)
        </li>
    }
</ol>

但是,由于显而易见的原因,生成的输入 html 标记的名称属性会被 opt.Title 覆盖。 MVC-4 在发布数据时使用 name 属性进行强类型模型绑定。

如何使单选按钮组合在一起?

编辑:我用 RadioButton 替换了 RadioButtonFor,如下所示。但是这种方式我错过了模型绑定功能。

<ol class="Question">
    @for (int j = 0; j < Model.Options.Count; j++)
    {
        <li class="Opt">                    
            @Html.RadioButton("uniqueRadio", Model.Options[j].IsSelected, false)
            @Model.Options[j].Title
        </li>
    }
</ol>

【问题讨论】:

标签: asp.net-mvc asp.net-mvc-4


【解决方案1】:

使用简单的RadioButton

<ol class="Opt">
    @foreach (var opt in quest.Options)
    {
        <li class="Opt">
            @Html.RadioButton("uniqueRadio", opt.Title)
            @Html.Label(opt.Title)
        </li>
    }
</ol

【讨论】:

  • 我觉得应该是@Html.RadioButton("uniqueRadio", opt.Title) 因为helper的第一个参数就是名字
  • @Daniele,通过使用简单的单选按钮,我错过了默认模型绑定功能,在后期操作中,对吧?
  • 不完全是,如果您将 RadioButton 的名称设置为 Title 并且您的视图需要一个 Title 布尔值,它将绑定到它。
猜你喜欢
  • 2012-06-04
  • 1970-01-01
  • 1970-01-01
  • 2012-06-30
  • 1970-01-01
  • 1970-01-01
  • 2016-04-05
  • 2020-08-27
  • 1970-01-01
相关资源
最近更新 更多