Javascript 如何在控制器中返回json格式的响应。(Asp.net)

Javascript 如何在控制器中返回json格式的响应。(Asp.net),javascript,asp.net,json,asp.net-core,typeahead.js,Javascript,Asp.net,Json,Asp.net Core,Typeahead.js,我使用toastr来通知我的表单。我总是收到错误消息,但数据保存在数据库中。我认为错误来自于控制器,因为我没有用json发回。谢谢你的帮助 ---控制员:-------- public ActionResult CreateNewRentals(NewRentalDto newRental) { var hour = DateTime.Now; var customer = _context.Customers.Single(

我使用toastr来通知我的表单。我总是收到错误消息,但数据保存在数据库中。我认为错误来自于控制器,因为我没有用json发回。谢谢你的帮助

---控制员:--------

        public ActionResult CreateNewRentals(NewRentalDto newRental)
    {
        var hour = DateTime.Now;
        var customer = _context.Customers.Single(
            c => c.Id == newRental.CustomerId);

        var movies = _context.Movie.Where(
            c => newRental.MovieId.Contains(c.Id)).ToList();

        foreach (var movie in movies)
        {
            if (movie.NumberAvailable == 0)
               return BadRequest("le film est introuvable");

            movie.NumberAvailable--;
            var rental = new Rental
            {

                Customer = customer,
                Movie = movie,
                DateRented = DateTime.Now
            };

            _context.Rentals.Add(rental);

        }
        _context.SaveChanges();
        return Ok();
    }
--------拉维尤----------

<script type="text/javascript">




    $(document).ready(function () {

        var vm = {
            movieId: []
        };
        var customers = new Bloodhound({
            datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
            queryTokenizer: Bloodhound.tokenizers.whitespace,
            local: customers,
            remote: {
                url: '/api/customers?query=%QUERY',
                wildcard: '%QUERY'
            }
        });

        $('#customer').typeahead({
            hint: true,
            highlight: true,
            minLength: 1
        }, {
            name: 'customers',
            display: 'name',

            source: customers
        }).on("typeahead:select", function (e, customer) {
            vm.customerId = customer.id;



        });

        /* MOVIES */

        var movies = new Bloodhound({
            datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
            queryTokenizer: Bloodhound.tokenizers.whitespace,
            remote: {
                url: '/api/movies?query=%QUERY',
                wildcard: '%QUERY'
            }
        });
        $('#movie').typeahead({

            hint: true,
            highlight: true,
            minLength: 1
        }, {
            name: 'movies',
            display: 'name',
            source: movies
        }).on("typeahead:select", function (e, movie) {
            $("#movies").append("<li class='list-group-item'>" + movie.name + "</li>");
            $("#movie").typeahead("val", "");
            vm.movieId.push(movie.id);
        });
        $("#newRental").submit(function (e) {

            e.preventDefault();
            $.ajax({
                url: "/api/newRentals",
                method: "POST",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                data: JSON.stringify(vm),
                success: function (data) {
                    toastr.success(' successfully!');

                },
                error: function () {
                    toastr.error( 'error!');
                }
            });

        });
    });



</script>

你没有把任何东西传递给Ok结果。或者像这样传递一个值:在这里返回OkOBJECT,或者在这里返回新的JsonResultOBJECT。区别在于Ok返回HTTP状态200

您没有将任何内容传递给Ok结果。或者像这样传递一个值:在这里返回OkOBJECT,或者在这里返回新的JsonResultOBJECT。区别在于Ok返回HTTP状态200

只要删除dataType:json,那么客户机就不希望在响应中返回json。或者从服务器返回一些JSON,如果有什么有用的东西可以返回p.S。我总是收到错误消息…错误消息到底是什么?您在哪里看到它?如果你知道,告诉我们。那么我们就不必根据您的推测猜测真正的原因了。只要删除dataType:json,那么客户端就不希望json返回到响应中。或者从服务器返回一些JSON,如果有什么有用的东西可以返回p.S。我总是收到错误消息…错误消息到底是什么?您在哪里看到它?如果你知道,告诉我们。根据你的推测,我们无法猜测真正的原因。