title: Force user To check a Checkbox in ASP.NET MVC
body: <p>I have designed a registration form for my Website and now I put a check box for Terms and Conditions acceptance which is defined in Model.</p>
  <p>Now I want to now is there any way to force user to check that checkbox or not?</p>
  <p>If it is pre-defined in ASP.NET MVC, I use it to check both server side and client side and if not I use Javascript for that.</p>
  <p>Here is my code</p>
  <p><em>RegisterViewModel</em></p>
  <pre><code>public class RegisterViewModel
  {
      [Required(ErrorMessage = &quot;{0} نمی تواند خالی باشد&quot;)]
      [RegularExpression(&quot;^[\u0600-\u06FF\u0698\u067E\u0686\u06AF ]{2,}$&quot;, ErrorMessage = &quot;نام فقط شامل الفبای فارسی می باشد.&quot;)]
      [StringLength(32, MinimumLength = 2, ErrorMessage = &quot;طول نام کاربری بین 4 تا 32 کاراکتر است.&quot;)]
      [Display(Name = &quot;نام&quot;)]
      public string Firstname { get; set; }
  
      [Required(ErrorMessage = &quot;{0} نمی تواند خالی باشد&quot;)]
      [RegularExpression(&quot;^[\u0600-\u06FF\u0698\u067E\u0686\u06AF ]{2,}$&quot;, ErrorMessage = &quot;نام فقط شامل الفبای فارسی می باشد.&quot;)]
      [StringLength(32, MinimumLength = 2, ErrorMessage = &quot;طول نام کاربری بین 4 تا 32 کاراکتر است.&quot;)]
      [Display(Name = &quot;نام خانوادگی&quot;)]
      public string LastName { get; set; }
  
      [Required(ErrorMessage = &quot;{0} نمی تواند خالی باشد&quot;)]
      [Phone]
      [Display(Name = &quot;شماره تلفن&quot;)]
      public string PhoneNumber { get; set; }
  
      [Required(ErrorMessage = &quot;{0} نمی تواند خالی باشد&quot;)]
      [Display(Name = &quot;جنسیت&quot;)]
      public Gender Gender { get; set; }
  
      [Required(ErrorMessage = &quot;{0} نمی تواند خالی باشد&quot;)]
      [RegularExpression(&quot;^[a-zA-Z][a-zA-Z_]+$&quot;, ErrorMessage = &quot;نام کاربری شامل الفبای انگلیسی، اعداد و آندرلاین می باشد.&quot;)]
      [StringLength(16, MinimumLength = 4, ErrorMessage = &quot;طول نام کاربری بین 4 تا 16 کاراکتر است.&quot;)]
      [Display(Name = &quot;نام کاربری&quot;)]
      public string Username { get; set; }
  
      [Required(ErrorMessage = &quot;{0} نمی تواند خالی باشد&quot;)]
      [EmailAddress(ErrorMessage = &quot;پست الکترونیک به درستی وارد نشده است.&quot;)]
      [Display(Name = &quot;پست الکترونیک&quot;)]
      public string Email { get; set; }
  
      [Required(ErrorMessage = &quot;{0} نمی تواند خالی باشد&quot;)]
      [StringLength(100, ErrorMessage = &quot;پسوورد باید بین {0} و {2} کاراکتر باشد.&quot;, MinimumLength = 6)]
      [DataType(DataType.Password)]
      [Display(Name = &quot;رمز عبور&quot;)]
      public string Password { get; set; }
  
      [Required(ErrorMessage = &quot;{0} نمی تواند خالی باشد&quot;)]
      [DataType(DataType.Password)]
      [Display(Name = &quot;تکرار رمز عبور&quot;)]
      [Compare(&quot;Password&quot;, ErrorMessage = &quot;رمز عبور با تکرارش همخوانی ندارد.&quot;)]
      public string ConfirmPassword { get; set; }
  
      [Required]
      public bool IsAgreeWithTerms { get; set; }
  </code></pre>
  <p><em>Register View</em></p>
  <pre><code>&lt;section class=&quot;register-area&quot;&gt;
  &lt;div class=&quot;row m-1&quot;&gt;
      &lt;div class=&quot;col-lg-12 col-md-12 p-0&quot;&gt;
          &lt;div class=&quot;register-content&quot;&gt;
              &lt;div class=&quot;d-table&quot;&gt;
                  &lt;div class=&quot;d-table-cell&quot;&gt;
                      &lt;div class=&quot;register-form&quot;&gt;
                          &lt;h3&gt;&lt;i class=&quot;bx bx-user&quot;&gt;&lt;/i&gt; ثبت نام در ایران پی سی جِی&lt;/h3&gt;
                          @using (Html.BeginForm(&quot;Register&quot;, &quot;Account&quot;, new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = &quot;form-horizontal&quot;, role = &quot;form&quot; }))
                          {
                              @Html.AntiForgeryToken()
                      &lt;div class=&quot;row m-1&quot;&gt;
                          &lt;div class=&quot;form-group col-lg-6 col-m-6&quot;&gt;
                              @Html.TextBoxFor(m =&gt; m.Firstname, new { @class = &quot;form-control&quot;, @placeHolder = &quot;نام&quot; })
                              @Html.ValidationMessageFor(m =&gt; m.Firstname, &quot;&quot;, new { @class = &quot;text-danger&quot; })
                          &lt;/div&gt;
  
                          &lt;div class=&quot;form-group col-lg-6 col-m-6&quot;&gt;
                              @Html.TextBoxFor(m =&gt; m.LastName, new { @class = &quot;form-control&quot;, @placeHolder = &quot;نام خانوادگی&quot; })
                              @Html.ValidationMessageFor(m =&gt; m.LastName, &quot;&quot;, new { @class = &quot;text-danger&quot; })
                          &lt;/div&gt;
  
                          &lt;div class=&quot;form-group col-lg-6 col-m-6&quot;&gt;
                              @Html.EnumDropDownListFor(m =&gt; m.Gender, &quot;--جنسیت--&quot;, new { @class = &quot;form-control&quot; })
                              @Html.ValidationMessageFor(m =&gt; m.Gender, &quot;&quot;, new { @class = &quot;text-danger&quot; })
                          &lt;/div&gt;
  
                          &lt;div class=&quot;form-group col-lg-6 col-m-6&quot;&gt;
                              @Html.TextBoxFor(m =&gt; m.PhoneNumber, new { @class = &quot;form-control&quot;, @placeHolder = &quot;شماره تلفن&quot; })
                              @Html.ValidationMessageFor(m =&gt; m.PhoneNumber, &quot;&quot;, new { @class = &quot;text-danger&quot; })
                          &lt;/div&gt;
  
                          &lt;div class=&quot;form-group col-lg-6 col-m-6&quot;&gt;
                              @Html.TextBoxFor(m =&gt; m.Username, new { @class = &quot;form-control&quot;, @placeHolder = &quot;نام کاربری&quot; })
                              @Html.ValidationMessageFor(m =&gt; m.Username, &quot;&quot;, new { @class = &quot;text-danger&quot; })
                          &lt;/div&gt;
  
                          &lt;div class=&quot;form-group col-lg-6 col-m-6&quot;&gt;
                              @Html.TextBoxFor(m =&gt; m.Email, new { @class = &quot;form-control&quot;, @placeHolder = &quot;ایمیل&quot; })
                              @Html.ValidationMessageFor(m =&gt; m.Email, &quot;&quot;, new { @class = &quot;text-danger&quot; })
                          &lt;/div&gt;
  
                          &lt;div class=&quot;form-group col-lg-6 col-m-6&quot;&gt;
                              @Html.PasswordFor(m =&gt; m.Password, new { @class = &quot;form-control&quot;, @placeHolder = &quot;رمز عبور&quot; })
                              @Html.ValidationMessageFor(m =&gt; m.Password, &quot;&quot;, new { @class = &quot;text-danger&quot; })
                          &lt;/div&gt;
  
                          &lt;div class=&quot;form-group col-lg-6 col-m-6&quot;&gt;
                              @Html.PasswordFor(m =&gt; m.ConfirmPassword, new { @class = &quot;form-control&quot;, @placeHolder = &quot;تکرار رمز عبور&quot; })
                              @Html.ValidationMessageFor(m =&gt; m.ConfirmPassword, &quot;&quot;, new { @class = &quot;text-danger&quot; })
                          &lt;/div&gt;
  
                          &lt;div class=&quot;form-group col-lg-6 col-m-6 terms&quot;&gt;
                              @Html.CheckBoxFor(m =&gt; m.IsAgreeWithTerms)
                              با &lt;a href=&quot;#&quot;&gt;قوانین و شرایط&lt;/a&gt; ایران پی سی جِی موفق هستم.
                          &lt;/div&gt;
  
                          &lt;div class=&quot;form-group col-lg-6 col-m-6&quot;&gt;
                              &lt;button type=&quot;submit&quot;&gt;ثبت نام&lt;/button&gt;
                          &lt;/div&gt;
  
                      &lt;/div&gt;
                          }
                      &lt;/div&gt;
                  &lt;/div&gt;
              &lt;/div&gt;
          &lt;/div&gt;
      &lt;/div&gt;
  &lt;/div&gt;
  &lt;/section&gt;
  </code></pre>
  <p>So is there any way to forbid user from submitting form without checking <code>IsAgreeWithTerms</code> field?</p>
  <p>Thanks for responses</p>