如何反序列化复选框值的 JSON 数据
How to de-serialize JSON data of check box values?
我在一个表单中有多个复选框值。我正在序列化表单并作为 JSON 数据发送到 mvc 控制器。如何反序列化复选框值?
这是我的 html -
@using (Html.BeginForm("SaveOfficeConfiguration", "Offices", FormMethod.Post, new { Id = "frmOfficeConfigSave" }))
{
<div id="divOfficeForm">
<div style="width: auto; height: auto; border: 3px outset silver;">
<table class="mainsectionable" width="100%">
<thead>
<tr>
<th style="text-align: center;">
<center>KCCM Profile Access</center>
</th>
</tr>
<tr>
<td>
@using (Html.BeginForm())
{
IEnumerable<SelectListItem> Brands = ViewBag.GetBrands;
foreach (var item in Brands)
{
@Html.CheckBox("KCCM_Brands", false, new
{
value = item.Value
});
<label>@item.Text</label><br />
}
}
</td>
</tr>
</thead>
</table>
</div>
</div>
}
这是我的javascript函数-
function SaveOfficeConfigNew() {
var officeID = $('input[name="hdnOfficeID"]').val();
var url = "/OfficeManagement/Offices/SaveOfficeConfiguration?officeID=" + officeID;
ShowWait();
$.ajax({
type: "POST",
url: url,
data: frmOfficeConfigSave.$('input').serialize(),
success: function (data) {
HideWait();
alert(data.msg);
},
error: function (data) {
HideWait();
alert(data.msg);
}
});
applyFilter();
return false;
}
这是我要做的控制器动作——
[HttpPost]
public ActionResult SaveOfficeConfiguration(int ? officeID, FormCollection form)
{
try
{
*/..............
..............*/
return Json(new
{
success = true,
msg = String.Empty,
id = 1
}, JsonRequestBehavior.AllowGet);
}
catch (Exception error)
{
return Json(new
{
success = false,
msg = error.Message,
id = -1
}, JsonRequestBehavior.AllowGet);
}
}
你只需要接收一个List<string>
参数,其名称与你给复选框的名字相同,即KCM_Brands
。模型绑定器将直接为您反序列化它。
[HttpPost]
public ActionResult SaveOfficeConfiguration(int ? officeID, FormCollection form,
List<string> KCM_Brands)
{
....
}
要序列化表单数据以发布它,请使用本文中提到的函数:
使用表单序列化的 JSON 对象发布不映射到 C# 对象
您可以使用
FormsCollection
检索复选框值:
控制器:
[HttpPost]
public ActionResult SaveOfficeConfiguration(int ? officeID, FormCollection form)
{
var CheckBoxValues = form["KCCM_Brands"].Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(x=>int.Parse(x));
}
欲了解更多信息,请看这里 :http://www.mindstick.com/Articles/2ee905ba-aea1-4d83-a49d-d8d8fb10c747/?Checkbox%20control%20in%20MVC
而不是
@Html.CheckBox("KCCM_Brands", false, new
{
value = item.Value
});
使用此代码生成复选框
<input type="checkbox" name="KCCM_Brands" value="@item.Value" />
控制器上的操作应如下所示
public ActionResult SaveOfficeConfiguration(int? officeID, List<string> KCCM_Brands)
当您发布表单时,List<string> KCCM_Brands
将仅填充所选复选框的值。
另外,我不知道您的javascript是否正确,但是我必须进行以下更改才能使其正常工作
data: $('#frmOfficeConfigSave input').serialize()
相关文章:
- 如何将JSON数据导入我的ejs模板
- 如何将json数据显示为html
- Json数据包含日期和时间格式
- 用我的json数据填充JQuery DataTable
- AngularJS加载JSON数据,然后从中解析/加载HTML
- 使用jquery读取Json数据
- 如何将本地json数据加载到Extjs数据模型中
- 如何使用jquery ajax和jsonp在您自己的域上读取json数据
- React-将jSON数据传递给子组件的子组件
- 尝试从控制器加载带有json数据的Simile时间线
- Jquery:对返回JSON数据的php脚本的Ajax调用
- 如何通过数据分组将json数据转换为嵌套的json数据格式
- 如何在ReactJs中显示Json数据
- 使用javascript进行JSON数据检索
- tu如何将id放在填充了json数据的html表td上
- 将JSON数据从服务器加载到knockout.jsobservable中
- 使用JavaScript处理JSON数据
- 如何将json数据传递到.js文件
- 如何在带有nunjucks和gullow数据的JSON数据中使用带有HTML的内容
- 如何使用var名称调用JSON数据