首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RadioButtonFor删除默认检查

RadioButtonFor删除默认检查
EN

Stack Overflow用户
提问于 2015-02-22 19:59:48
回答 1查看 3K关注 0票数 2

在我的视图模型中有这样的属性:

代码语言:javascript
复制
public bool IsObligatory { get; set; }

并应由用户在post方法中填写。问题是,第二个单选按钮的默认值被选中。怎么移除它?即使我将模型中的IsObligatory属性设置为可选的,第二个单选按钮在默认情况下也会保持选中状态。

我的模型类与此问题相关:

代码语言:javascript
复制
public class Subject
{
   public int ID { get; set; }
   public string Name { get; set; }
   public int Semester { get; set; }

   public virtual ICollection<SubjectCourse> Courses { get; set; }
}
public class Course
{
   public int ID { get; set; }
   public string Abbreviation { get; set; }
   public string Title { get; set; }

   public virtual ICollection<SubjectCourse> Subjects { get; set; }
}
public class SubjectCourse
{
   public int SubjectCourseID { get; set; }
   public int SubjectID { get; set; }
   public int CourseID { get; set; }
   public bool? IsObligatory { get; set; }

   public virtual Subject Subject { get; set; }
   public virtual Course Course { get; set; }
}

我的观点模型:

代码语言:javascript
复制
public class SubjectVM
{
    public int? ID { get; set; }
    ...
    public List<SelectedCourseVM> SelectedCourses { get; set; }
    ...
}
public class SelectedCourseVM
{
    public int ID { get; set; }
    public string Title { get; set; }
    public bool IsObligatory { get; set; }
    public bool Selected { get; set; }
}

我的部分观点是:

代码语言:javascript
复制
<div class="form-group adding collapsable-courses">
   @for (int i = 0; i < Model.SelectedCourses.Count; i++)
   {
      <div class="panel-group" id="@Html.Id(@Model.SelectedCourses[i].Title)">
         <div class="panel panel-default">
            <div class="panel-heading">
               <h4 class="panel-title">
                  <a data-toggle="collapse" data-parent="#@Html.Id(@Model.SelectedCourses[i].Title)" href="#@Model.SelectedCourses[i].ID">
                     @Html.HiddenFor(model => model.SelectedCourses[i].ID)
                                        @Html.CheckBoxFor(model => model.SelectedCourses[i].Selected, new { @class = "checkbox-inline" })
                     <label class="course-label">@Model.SelectedCourses[i].Title</label>
                  </a>
               </h4>
            </div>
            <div id="@Model.SelectedCourses[i].ID" class="panel-collapse collapse in courses-to-collapse" toggle="false">
               <div class="panel-body">
                   <div class="isobligatory-radios">
                       <label class="radio-inline">
                           @Html.RadioButtonFor(model => model.SelectedCourses[i].IsObligatory, true)
                           Obavezan predmet
                       </label>
                       <label class="radio-inline">
                           @Html.RadioButtonFor(model => model.SelectedCourses[i].IsObligatory, false)
                           Izborni predmet
                       </label>
                   </div>
                </div>
             </div>
          </div>
      </div>
    }
</div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-22 21:17:36

这是因为IsObligatory属性的类型为bool,因此只能为true或false (默认值为false)。如果将类型更改为bool? (可空),则默认值将为null,并且将选择两个单选按钮。

代码语言:javascript
复制
public bool? IsObligatory { get; set; }
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28662564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档