这是我的创建视图,使用输入类型=复选框,但是我无法选择多个值
py -m pip install numpy --users
这是我的模型类,我使用SP来添加数据,并且尝试添加多个复选框值
<div class="form-group">
@Html.LabelFor(model => model.Hobby, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
<span>WRITING</span><input type="checkbox" groupname="Hobby" name="Hobby" value="WRITING" />
<span>DANCING</span><input type="checkbox" groupname="Hobby" name="Hobby" value="DANCING" />
<span>COADING</span><input type="checkbox" groupname="Hobby" name="Hobby" value="COADING" />
<span>SINGING</span><input type="checkbox" groupname="Hobby" name="Hobby" value="SINGING" />
@*<span>DANCING</span> @Html.CheckBox("Hobby", new { @id = "Hobby", @value = "DANCING" })
<span>WRITING</span> @Html.CheckBox("Hobby", new { @id = "Hobby", @value = "WRITING" })
<span>SINGING</span> @Html.CheckBox("Hobby", new { @id = "Hobby", @value = "SINGING" })
<span>COADING</span> @Html.CheckBox("Hobby", new { @id = "Hobby", @value = "COADING" })*@
@Html.ValidationMessageFor(model => model.Hobby, "", new { @class = "text-danger" })
</div>
</div>
答案 0 :(得分:0)
假设数据库上只有一个“爱好”列,则可以为爱好复选框使用单独的ID。
然后使用列表获取复选框的值,然后将您的爱好字符串连接到单个字符串。将该字符串变量传递给您的SQL函数。您可以执行以下操作:
string myHobbies { get; set; }
protected void CheckBox_CheckedChanged(object sender, EventArgs e)
{
List<CheckBox> hobbyCheckBoxList = new List<CheckBox>();
hobbyCheckBoxList.Add(CheckBox1);
hobbyCheckBoxList.Add(CheckBox2);
hobbyCheckBoxList.Add(CheckBox3);
hobbyCheckBoxList.Where(x => x.Checked).Select(x=>x.Text);
myHobbies.Text = string.Join(",", hobbyCheckBoxList.Where(x => x.Checked).Select(x => x.Text));
}
关于您的SQL参数函数:
public void AddEmployee(Employee emp, string)
{
using (SqlConnection con = new SqlConnection(ConnectionString))
{
SqlCommand cmd = new SqlCommand("spaddEmployee", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@FirstName", emp.FirstName);
cmd.Parameters.AddWithValue("@LastName", emp.LastName);
cmd.Parameters.AddWithValue("@Gender", emp.Gender);
cmd.Parameters.AddWithValue("@DOB", Convert.ToDateTime(emp.DOB));
cmd.Parameters.AddWithValue("@Hobby", myHobbies);
cmd.Parameters.AddWithValue("@Photo", emp.Photo);
cmd.Parameters.AddWithValue("@City", emp.City);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
答案 1 :(得分:0)
您的模型将类似于
Employee{
public string FirstName{get;set;}
public string LastName{get;set;}
public List<Hobby> Hobbies{get;set;}
}
Hobby{
public string HobbyName{get;set;}
public string HobbyCode{get;set;}
public bool IsSelected{get;set;}
}
在.cshtml文件中,您需要应用for循环以填充“兴趣爱好”复选框控件
@for (int i = 0; i < Model.Hobbies.Count; i++)
{
<div class="form-group">
@Html.LabelFor(model => Hobbies[i].HobbyName, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.CheckBoxFor(x => x.Hobbies[i].IsSelected, new {name=@Model.Hobbies[i].HobbyCode,id= @Model.Hobbies[i].HobbyCode})
<span class="slider"></span>
@Html.ValidationMessageFor(model =>Hobbies[i].IsSelected, "", new { @class = "text-danger" })
</div>
</div>
}
在Hobbies数组中,您将获得IsSelected标志true或false。
获取所选爱好的完整列表以应用LINQ查询,如:
Employee.Hobbies.Where(o => o.IsSelected);