模型绑定复选框?
Model Binding a checkbox?
我一直使用 MVC 模型绑定,所以这对我来说是新的。我有一个 class 和 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 razorpage
<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>
我绑定名字的方式是
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 并且只需要 select 几个学生并将它们传递给 [HttpPost] public ActionResult Student(IFormCollection form, 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>
我一直使用 MVC 模型绑定,所以这对我来说是新的。我有一个 class 和 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 razorpage
<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>
我绑定名字的方式是
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 并且只需要 select 几个学生并将它们传递给 [HttpPost] public ActionResult Student(IFormCollection form, 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>