如何使用Razor网页将复选框中的值检查并将它们放入数组中?
<div>
<label for="mon">
<input type="checkbox" id="mon" name="day[]" value="monday" @(Request.Form["day"] == "mon" ? "checked" : "")>Monday
</label>
<label for="tue">
<input type="checkbox" id="tue" name="day[]" value="tuesday" @(Request.Form["day"] == "tue" ? "checked" : "")>Tuesday
</label>
<label for="wed">
<input type="checkbox" id="wed" name="day[]" value="wednesday" @(Request.Form["day"] == "wed" ? "checked" : "")>Wednesday
</label>
<label for="thur">
<input type="checkbox" id="thur" name="day[]" value="thursday" @(Request.Form["day"] == "thur" ? "checked" : "")>Thursday
</label>
<label for="fri">
<input type="checkbox" id="fri" name="day[]" value="friday" @(Request.Form["day"] == "fri" ? "checked" : "")>Friday
</label>
</div>
答案 0 :(得分:0)
最好的方法是在视图中使用模型,然后您可以映射要发布的属性。我会每天使用一个bool。类似的东西:
你的班级:
public class MyModel {
public bool Monday {get;set;}
public bool Tuesday {get;set}
etc....
}
将其添加到视图顶部
@model MyModel
和你的表格
@using (Html.BeginForm()){
@Html.CheckBoxFor(m=>m.Monday)
@Html.CheckBoxFor(m=>m.Tuesday)
etc..
}
并在您的控制器中
[HttpPost]
public ActionResult YourViewName(MyModel model){
您可以在行动中获取这些值,例如
var mondayChecked = model.Monday;
答案 1 :(得分:0)
使用您已有的代码,这些值将在Request.Form
集合中以Request.Form["day[]"]
的形式提供。它们将是逗号分隔的字符串。您可以使用string.Split()
将其转换为数组:
var myArrayOfDays = Request.Form["day[]"].Split(new [] {','});