我添加了一个代码来从数据库中获取值以显示多个复选框,如下面的我的视图页所示
@{
var dept_list = ViewBag.department_list;
}
@foreach (var dept_item in dept_list)
{
<input type="checkbox" id="dept_checkbox" name="@dept_item.name" value="@dept_item.department_ID" />
<span class="rmargin20">@dept_item.name</span>
}
现在我想获取已选中复选框的值,并希望将这些值保存到数据库中。上面提到的代码将为数据库中的每条记录生成复选框。
这可以在asp.net中完成。但是我想在MVC中实现这个功能。
答案 0 :(得分:0)
您好您可以使用FormCollection
获取表单值。
请参阅下面的示例代码:
public ActionResult MethodName(FormCollection form)
{
string CheckboxValue = form.Get("CheckBoxName_1"); //Dynamic checkbox name
return View();
}
希望它可以帮助你:)
答案 1 :(得分:-1)
如果您的观点是强烈绑定,那么只需提交表单并使用上述解决方案获取检查值。
如果不是,则使用jquery保存选中的值。
为每个复选框使用一个类
<input type="checkbox" id="dept_checkbox" class="checkbox_dept" name="@dept_item.name" value="@dept_item.department_ID" />
<span class="rmargin20">@dept_item.name</span>
现在获取检查值
var selectedDepts == null;
$('.checkbox_dept::checked').each(function (e) {
selectedDepts += this.value + "^";
});
//ajax call
$.post("../ControlerName/Save", { "strSelectedDepts": selectedDepts },
function (data) {
//saved successfully
}.fail(function (xhr, textStatus, errorThrown) {
//Error occured
});
在控制器文件中。
[HttpPost]
public string Save(string strSelectedDepts)
{
//remove last ^ char
string strData = strSelectedDepts.Substring(0, strSelectedDepts.Length - 1);
string[] arrData = strData.Split('^');
foreach(var itm in arrData)
{
//do save operation
}
}