在Ajax调用中,我将模型参数传递给Controller方法,但没有数据传递给Controller。
var Model =
{
email: "123",
phone:"2323"
};
$.ajax({
type: "POST",
url: `/Home/AddEmailPhone/`,
data: Model,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
console.log(data);
console.log(data.length);
},
failure: function (data) {
console.log("failure");
},
error: function (data) {
console.log("error");
}
});
控制器方法看起来像
public JsonResult AddEmailPhone([FromBody]EmailPhoneModel Model)
{
Return Json("json");
}
ajax调用成功调用Method
但没有数据传递。
我也尝试通过url传递值 像:
`/Home/AddEmailPhone/email= ${email}&phone=${phone}`
这在我的另一个项目中起作用,我传递了int
值,但这次没人工作。
我在做什么错了?
答案 0 :(得分:3)
假设你的模型有公共属性并且url被正确映射,我看到的唯一缺失位是调用stringify来规范你的json。
data: JSON.stringify(Model),
我用以下方法对此进行了测试:
public JsonResult AddEmailPhone(EmailPhoneModel Model)
{
return Json("json");
}
但我没有安装Core。
答案 1 :(得分:0)
您可以使用$ .get
//at client side
var url = "apiurl/method1";
var par1="valu";
$.get(url, { contParam1: par1}, function (data)
{
//write code here after success
}
);
//at server side
[HttpGet("method1")]
public ActionResult<IEnumerable<string>> method1([FromQuery(Name = "contParam1")] string contParam1)
{
}