【发布时间】:2017-10-30 07:36:36
【问题描述】:
我正在尝试将 json 发送到我的 mvc 动作控制器,我在网上进行了搜索和研究,但我总是在我的控制器中收到带有所有“空”字段的对象。 我尝试发送一个字符串而不是一个对象,但结果相同,一个空字符串。 我真的不知道有什么问题:
类:
namespace TestUser.Models
{
public class User
{
public string Name { get; set; }
public string Surname { get; set; }
public string Email { get; set; }
public string Sex { get; set; }
public string Transfer { get; set; }
public string PercTransf { get; set; }
}
}
控制器:
[HttpPost]
public ActionResult CheckUser( User dati)
{
if (dati != null)
{
if (string.IsNullOrEmpty(dati.Name))
return Json("Insert the name");
if (string.IsNullOrEmpty(dati.Surname))
return Json("Insert the surname");
if (dati.Sex != "m" && dati.Sex != "f")
return Json("Insert the sex");
return Json("OK");
}
else
{
return Json("No valid data");
}
}
阿贾克斯:
function checkAndSaveData() {
var obj = new Object();
obj.Name = $("#nome").val();
obj.Surname = $("#cognome").val();
obj.Email = $("#email").val();
obj.Sex = $('#selectSesso').find(":selected").val();
obj.Transfer = "no";
obj.PercTransf = "0";
if ($('#trasferte:checked').val() == "on") {
obj.Transfer = "si";
obj.PercTransf = $("#tempotrasf").val();
};
$.ajax({
type: 'post',
dataType: 'json',
url: '@Url.Action("CheckUser")',
data: JSON.stringify({ obj }),
success: function (json) {
if (json == "ok") {
$.ajax({
type: 'post',
dataType: 'json',
url: "@Url.Action("Save")",
success: function (json) {
if (json == "ok") {
alert();
} else {
alert(json);
}
},
});
} else {
alert(json);
}
},
});
}
【问题讨论】:
-
wo wo wo... 等一下.. 这是什么 ->
return Json(dati);请求CheckUser方法?如果仅用于测试目的,我会以某种方式批准。 -
url: dataObject?data: { json: ... }?为什么? -
另外你需要把
data: { "json": JSON.stringify(obj) },改成data: { dati: JSON.stringify(obj) }, -
第一次返回仅用于调试和检查对象值,解决问题后我应该删除
-
@Drake 这是什么 ->
url: dataObject,?
标签: javascript c# ajax asp.net-mvc model-view-controller