“模型绑定”复选框

本文关键字:复选框 模型绑定 绑定 模型 | 更新日期: 2023-09-27 18:26:21

我一直使用MVC模型绑定,所以这对我来说是新的。我有一个类和MVC剃刀形式。

public class Student
{
    public string Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public bool? IsNew { get; set; }
}

我的mvc剃须刀

<div class="form-group">
    <label class="checkbox-inline">
      <input type="checkbox" name="isNew" id="isNew">Import
    </label>
 </div>
 <div class="form-group">
     <label for="firstName">FirstName</label>
     <input class="form-control" name="firstName" id="firstName"/>
  </div>

我绑定firstName的方式是

student.FirstName = request.Form.Get("firstName");

但我还没能用同样的技术做复选框?我试过使用

       student.IsNew = request.Form.GetValues("isNew");
       student.IsNew = request.Form.Get("isNew");

我该怎么做?

“模型绑定”复选框

您应该使用MVC模型绑定,这对您来说更容易。

模型绑定读取所有发布的数据、查询字符串值等,并为您构建一个对象。模型绑定允许您的控制器代码与查询请求及其相关环境的肮脏性保持干净的分离。

public ActionResult Create()
{
   var vm = new Student();
   return View(vm);
}
[HttpPost]
public ActionResult Create(Student model)
{
   //You can check model.IsNew and model.FirstName properties here
   // TO DO : Save and Redirect to a success message action method
   // Ex : return RedirectToAction("SavedSuccessfully");
}

和你的强类型剃须刀视图

@model Student
@using (Html.BeginForm())
{
    <lable>FirstName </lable>@Html.TextBoxFor(d=>d.FirstName)
    <lable>FirstName </lable>@Html.TextBoxFor(d => d.LastName)
    <label>New ? </label>@Html.CheckBoxFor(g=>g.IsNew)
    @Html.HiddenFor(d=>d.Id)
    <p>
        <input id="BtnAdd" name="myButton" type="submit" value="Add" />
    </p>
}

早上,只是我如何解决这个问题的最新消息:我查看了来自表单的值。

我用这个来做模型绑定工作。

       if (!string.IsNullOrEmpty(request.Form.Get("isNew")))
        {
            vehicle.IsNew = true;
        }
        else
        {
            vehicle.IsNew = false;
        }

为了将来的参考,请始终使用mvc模型绑定

返回IList时,只需选择几个学生并将其传递给[HttpPost]public ActionResult Student(IFormCollection表单,int[]SelectedSID),以下是您可以在视图中添加的内容。

@model IList<MvcDWOL.Data.Student>
@{
    ViewData["Title"] = "Add Students";
}
@Html.Partial("_StatusMessage", @ViewData["StatusMessage"])
<div class="container"">
<div class="top-buffer"></div>
<div class="panel panel-primary" style="border:none">
<div class="panel-heading panel-head">Live</div>
<div class="panel-body">
@using (Html.BeginForm("AddEdit", "Student", FormMethod.Post))
{
        <div class="form-actions no-color">
        <p>
            <input type="submit" value="Save" class="btn btn-primary"/> 
        </p>
       </div>
<table> 
<tbody>
  <thead>
        <tr>
             <th>
                Add (checkbox)
            </th>
            <th>
               Name
            </th>
            <th>
               Type
            </th>
             <th style="display:none">
                  Start Date
                </th>
             <th>
                   Start Time
                </th>
              <th style="display:none">
                  End Date
                </th>
                <th>
                   End Time
                </th>   
        </tr>
    </thead>
   @if (Model.Any())
  { 
        foreach (var item in Model)
        {
                <tr>
                <th  style="display:none">
                <input id="item@(item.ID)" type="hidden" 
                name="SelectedSID"
                value="@item.ID"
                /> 
                </th>
                <th>   
                <div style="zoom:1.5;">
                    @Html.CheckBox("IsAdded",@item.IsAdded)
                 </div> 
                </th>
                <th>
                  @item.Name
                 <input id="item@(item.Name)" type="hidden"  name="Name" value="@item.Name"/>
                </th>
                <th>
                  @item.Type.TypeName
                <input id="item@(item.TypeID)" type="hidden"  name="TypeID" value="@item.TypeID"/> 
                </th>
                <th>
                   @item.StartTimeValue
                 <input id="item@(item.StartTime)" type="hidden"  name="StartTime" value="@item.StartTime"/> 
                 <input id="item@(item.StartTimeValue)" type="hidden"  name="StartTimeValue" value="@item.StartTimeValue"/> 
                </th>
                <th>
                   @item.EndTimeValue
                 <input id="item@(item.EndTime)" type="hidden"  name="EndTime" value="@item.EndTime"/> 
                 <input id="item@(item.EndTimeValue)" type="hidden"  name="EndTimeValue" value="@item.EndTimeValue"/> 
                </th>
            </tr>
         }
   }         
  </tbody>
</table>
        @Html.ValidationSummary()
        <div class="form-actions no-color">
        <p>
            <input type="submit" value="Save" class="btn btn-primary" /> 
        </p>
      </div>
}

</div></div></div>