JQuery Ajax 调用未将参数传递给 ASP.NET Core MVC 中的“Controller Method”?
JQuery Ajax call not passing parameters to `Controller Method` in ASP.NET Core MVC?
在 Ajax 调用中,我将模型参数传递给控制器方法,但没有数据传递给控制器。
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
值的另一个项目中有效,但这次没有人在工作。
我做错了什么?
假设您的模型具有 public 属性并且 url 已正确映射,我看到的唯一缺失的部分是调用 stringify 以规范化您的 json.
data: JSON.stringify(Model),
我用以下方法测试过:
public JsonResult AddEmailPhone(EmailPhoneModel Model)
{
return Json("json");
}
但是我没有安装Core
你可以使用$.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)
{
}
在 Ajax 调用中,我将模型参数传递给控制器方法,但没有数据传递给控制器。
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
值的另一个项目中有效,但这次没有人在工作。
我做错了什么?
假设您的模型具有 public 属性并且 url 已正确映射,我看到的唯一缺失的部分是调用 stringify 以规范化您的 json.
data: JSON.stringify(Model),
我用以下方法测试过:
public JsonResult AddEmailPhone(EmailPhoneModel Model)
{
return Json("json");
}
但是我没有安装Core
你可以使用$.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)
{
}