Zap*_*ica 24 javascript ajax asp.net-mvc jquery html5
我试图从表单中提交一些值到我的mvc控制器.
这是我的控制器:
//Post/ Roles/AddUser
[HttpPost]
public ActionResult AddUser(String json)
{
Log.submit(json);
return View();
}
Run Code Online (Sandbox Code Playgroud)
这是js:
<script>
function submitForm() {
var usersRoles = new Array;
$("#dualSelectRoles2 option").each(function () {
usersRoles.push($(this).val());
});
console.log(usersRoles);
jQuery.ajax({
type: 'POST',
url: "@Url.Action("AddUser")",
contentType: "application/json; charset=utf-8",
datatype: 'json',
data: JSON.stringify(usersRoles),
success: function (data) { alert(data); },
failure: function (errMsg) {
alert(errMsg);
}
});
}
Run Code Online (Sandbox Code Playgroud)
当我在控制器上调试时,我的参数为null?该console.log(usersRoles)
给我的数据.
我做错了什么?
如何在控制器中接收json对象?
ram*_*ilu 29
我在你的代码中看到你试图将ARRAY传递给POST动作.在这种情况下,按照以下工作代码 -
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script>
function submitForm() {
var roles = ["role1", "role2", "role3"];
jQuery.ajax({
type: "POST",
url: "@Url.Action("AddUser")",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(roles),
success: function (data) { alert(data); },
failure: function (errMsg) {
alert(errMsg);
}
});
}
</script>
<input type="button" value="Click" onclick="submitForm()"/>
Run Code Online (Sandbox Code Playgroud)
控制器动作将是 -
public ActionResult AddUser(List<String> Roles)
{
return null;
}
Run Code Online (Sandbox Code Playgroud)
然后当你点击按钮 -
Shi*_*med 11
而不是接收json字符串,模型绑定更好.例如:
[HttpPost]
public ActionResult AddUser(UserAddModel model)
{
if (ModelState.IsValid) {
return Json(new { Response = "Success" });
}
return Json(new { Response = "Error" });
}
<script>
function submitForm() {
$.ajax({
type: 'POST',
url: "@Url.Action("AddUser")",
contentType: "application/json; charset=utf-8",
dataType: 'json',
data: $("form[name=UserAddForm]").serialize(),
success: function (data) {
console.log(data);
}
});
}
</script>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
95353 次 |
最近记录: |