一、单个Checkbox

 

1、View文件

<%= Html.CheckBoxFor(model => model.IsNeverExpired)%>

 

2、生成的HTML为

<input />

 

3、备注

 

(1)、上面生成的HTML有点奇怪, 为什么它会生成两个控件呢?

因为如果只生成一个input, 系统无法区分"没有选中checkbox" 和 "checkbox没有生成".

 

(2)、那又是为什么只生成一个input就无法区分呢?

原来当一个form中包含checkbox时,如果没有给它赋值(选中), 在服务器端Request.Form中得到的值是NULL

 

 

二、多个Checkbox

 

方法一:通过在视图页编码的方式

 
C# 代码   复制
MVC中CheckBox
MVC中CheckBox@using MvcCheckBoxList.Model
MVC中CheckBox@model MvcApplication2.Models.UserVm
MVC中CheckBox{
MVC中CheckBox    ViewBag.Title = "Index";
MVC中CheckBox    Layout = "~/Views/Shared/_Layout。cshtml";
MVC中CheckBox}
MVC中CheckBoxMVC中CheckBox@using (Html.BeginForm())
{
MVC中CheckBox    @Html.HiddenFor(m => m.User.Id)
MVC中CheckBoxMVC中CheckBox<br/>
MVC中CheckBox    @Html.LabelFor(m => m.User.Name)
MVC中CheckBox    @Html.EditorFor(m => m.User.Name)
MVC中CheckBox    @Html.ValidationMessageFor(m => m.User.Name)
MVC中CheckBox<br/>
MVC中CheckBox<ul style="list-style:none;">
MVC中CheckBoxMVC中CheckBox        @foreach (var a in Model.AllRoles)
{
MVC中CheckBox<li>
MVC中CheckBox                @if (Model.SelectedRoleIds.Contains(a.Id))
{
MVC中CheckBox<input type="checkbox" name="SelectedRoleIds" value="@a.Id" id="@a.Id" checked="checked"/>
MVC中CheckBox<label for="@a.Id">@a.Name</label>
MVC中CheckBox                }
MVC中CheckBoxelse
{
MVC中CheckBox<input type="checkbox" name="SelectedRoleIds" value="@a.Id" id="@a.Id" />
MVC中CheckBox<label for="@a.Id">@a.Name</label>
MVC中CheckBox                }
MVC中CheckBox</li>
MVC中CheckBox        }
MVC中CheckBox</ul>
MVC中CheckBox<br/>
MVC中CheckBox<input type="submit" value="为用户设置角色"/>
MVC中CheckBox}
MVC中CheckBoxMVC中CheckBox@section scripts
{
MVC中CheckBox    @Scripts.Render("~/bundles/jqueryval")
MVC中CheckBox}
MVC中CheckBox

 

方法二:通过NuGet的MvcCheckBoxList扩展

→工具--库程序包管理器--程序包管理器控制台→install-package MvcCheckBoxList

 
C# 代码   复制
MVC中CheckBox
MVC中CheckBox@using MvcCheckBoxList.Model
MVC中CheckBox@model MvcApplication2.Models.UserVm
MVC中CheckBox{
MVC中CheckBox    ViewBag.Title = "Index";
MVC中CheckBox    Layout = "~/Views/Shared/_Layout。cshtml";
MVC中CheckBox}
MVC中CheckBoxMVC中CheckBox@using (Html.BeginForm())
{
MVC中CheckBox    @Html.HiddenFor(m => m.User.Id)
MVC中CheckBoxMVC中CheckBox<br/>
MVC中CheckBox    @Html.LabelFor(m => m.User.Name)
MVC中CheckBox    @Html.EditorFor(m => m.User.Name)
MVC中CheckBox    @Html.ValidationMessageFor(m => m.User.Name)
MVC中CheckBox<br/>
MVC中CheckBox    @Html.CheckBoxListFor(m => m.SelectedRoleIds,
MVC中CheckBox                            m => m.AllRoles, //所有角色
MVC中CheckBox                            r => r.Id, //value值
MVC中CheckBox                            r => r.Name, //显示值
MVC中CheckBox                            r => r.UserRoles, //用户当前角色
MVC中CheckBox                            Position.Horizontal //CheckboxList排列方向
MVC中CheckBox                          )
MVC中CheckBox<br/>
MVC中CheckBox<input type="submit" value="为用户设置角色"/>
MVC中CheckBox}
MVC中CheckBoxMVC中CheckBox@section scripts
{
MVC中CheckBox    @Scripts.Render("~/bundles/jqueryval")
MVC中CheckBox}
MVC中CheckBox

 

相关文章:

  • 2022-01-10
  • 2022-12-23
  • 2022-12-23
  • 2022-01-10
  • 2022-01-22
  • 2022-12-23
  • 2022-12-23
  • 2021-06-21
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案