代码之家  ›  专栏  ›  技术社区  ›  Stef Heyenrath Dariusz Woźniak

如何在网格中使用单选按钮?

  •  0
  • Stef Heyenrath Dariusz Woźniak  · 技术社区  · 15 年前

    关于单选按钮/单选按钮列表的问题

    我有以下的 模型 :

    public class SkillLevelModel
        {
            public long? Id { get; set; }
            public int? SelectedLevel { get; set;}
        }
    

    我有以下的 控制器 :

    public class SkillController : BaseController
        {
            public ActionResult Index()
            {
                var skills = new List<SkillLevelModel>();
    
                for (int i = 0; i < 10; i++)
                    skills.Add(new SkillLevelModel() { Id = i, SelectedLevel = new Random().Next(0,5) });
    
                return View(skills);
            }
    

    我有下面的代码 视图 :

    <% foreach (var item in Model) { %>
        <tr>
            <td style="width: 30px" align="center">
                <%= Html.Encode(item.Id) %>
            </td>
            <td>
                <% Html.RenderPartial("UCSkillLevel", item); %>
            </td>
        </tr>
        <% } %>
    

    我有下面的代码 部分视图 :

    <% for (int i = 0; i <= 5; i++) { %>
        <td align="center">
            <%= Html.RadioButton("SelectedLevel", i, new { id = Model.Id + "_" + i })%>
        </td>
    <% } %>
    

    问题是没有选中单选按钮,尽管它们有一个级别。

    这里怎么了?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Stef Heyenrath Dariusz Woźniak    15 年前

    部分视图foreach循环中的代码应该是

    <%= Html.RadioButton("SelectedLevel_" + Model.Id, i, Model.SelectedLevel == i) %>
    
        2
  •  0
  •   Cristi Todoran    15 年前

    必须指定是否选择了单选按钮:

    Html.RadioButton("SelectedLevel", i, i == (Model.SelectedLevel ?? -1), new { id = Model.Id + "_" + i })