繁体   English   中英

C#MVC AJAX请求

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM