![](/img/trans.png)
[英]C# MVC Controller cannot get decimal or double values from Ajax POST request
[英]C# MVC AJAX Request
我有一个MVC应用程序,但无法获得此AJAX请求。 在[HttpPost]上的代码中放置断点时,脚本甚至无法到达那里。
我的JavaScript:
function newEmployee()
{
$.ajax({
url: '/Personnel/NewEmployee',
data: {
Ime: "test1",
Prezime: "test2"
},
type: 'POST',
contentType: 'application/json; charset=utf-8',
success(data)
{
console.log("Success!");
},
error(data)
{
console.log(data)
}
});
}
我的控制器:
public class PersonnelController : Controller
{
public ActionResult Employees()
{
//Return View
return View();
}
[HttpPost]
public ActionResult NewEmployee(string Ime, string Prezime)
{
uint UnijelaOsoba = 2;
Zaposlenik zaposlenik = new Zaposlenik(0);
zaposlenik.NoviZaposlenik(Ime, Prezime, UnijelaOsoba);
return Json(new { success = true });
}
}
到目前为止,看来我在JavaScript方面弄错了,对于Chrome开发者工具控制台,我得到:“ POST http://127.0.0.1:8080/Personnel/NewEmployee 500(内部服务器错误)”
解决方法(在Shyju回答之后):
function newEmployee()
{
$.ajax({
url: '/Personnel/NewEmployee',
data: JSON.stringify({
Ime: "test1",
Prezime: "test2"
}),
type: 'POST',
contentType: 'application/json; charset=utf-8',
success(data)
{
console.log("Uspješno!");
},
error(data)
{
console.log(data)
}
});
}
都是关于将JSON字符串化:)
500错误表示您的服务器代码崩溃了。 您需要在操作方法中设置一个断点,并找出原因
注意到一件事,可能是500错误的原因是,您以错误的方式发送数据。 如果要发送简单的精简对象,则无需将内容类型指定为application / json。 如果这样做,则应该对对象进行json字符串化,然后将其发送并在服务器端进行必要的更改。
这应该工作
$.ajax({
url: '@Url.Action("NewEmployee","Personnel")',
data: {
Ime: "test1",
Prezime: "test2"
},
type: 'POST'
}).done(function(res) {
console.log(res);
}).fail(function(a, b, c) {
console.log(a);
});
使用Javascript
function newEmployee()
{
var Data = {
Ime: "test1",
Prezime: "test2"
};
$.ajax(
{
type: "POST",
data: Data,
dataType: "json",
url: '@Url.Action("ActionName","ControllerName")',
success: function (data) {
console.log("Success!");
},
error: function (xhr, status) {
console.log("Error!");
},
complete: function (xhr, status) {
}
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.