动作方法返回原始json数据而不是ASP.NET Core 2.2中的视图 [英] Action method return raw json data instead of view in ASP.NET Core 2.2

查看:46
本文介绍了动作方法返回原始json数据而不是ASP.NET Core 2.2中的视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从数据库中获取数据并以JSON的形式发送以进行查看以填充数据表,但是操作方法返回了原始JSON数据.

I want to get data from the database and send it as JSON to view to fill datatable with it, but action method returns raw JSON data.

我的动作方法

    public IActionResult GoodsList()
    {
        var goodsScale = (from g in context.Goods
                          join s in context.Scale on g.ScaleId equals s.Id
                          select new
                          {
                              id = g.Id,
                              goodsName = g.Name,
                              scale = s.ScaleName
                          });
        return Json(goodsScale);
    }

jQuery ajax:

jQuery ajax:

        $.ajax({
            type: 'GET',
            dataType: 'JSON'
            url: '@Url.Action("GoodsList", "Goods")',
            success: function (data) {
                console.log("Data:", data);
                    $('#datatable').DataTable({
                    data: response,
                    columns: [
                        { 'data': 'id' },
                        { 'data': 'goodsName' },
                        { 'data': 'scale' },
                        {
                            'data': 'id',
                            'render': function (data) {
                                { return '<a  href="#" title="ویرایش" style="margin-left:10px" class="btn btn-success button"  onclick="openModal(' + data + ');"><i class="fa fa-edit"></i></a><a  href="#" title="حذف" style="margin-right:10px"  class="btn btn-danger button"  onclick="deleteUser(' + data + ')"><i class="fa fa-trash"></i></a>' }
                            },
                        }
                    ]
                })
            }
        })

返回的内容:

代替视图.

我应该提到的是,我在应用程序的另一个位置使用了相同的过程,它可以正常工作,但是我不知道这个过程有什么问题

I should mention that I used the same procedure in another place in my app and it works fine but I have no idea what is wrong with this one

推荐答案

下面是一个工作示例,如下所示:

Here is a working demo like below:

1.View( Index.cshtml ):

<table id="datatable" class="display" style="width:100%">
    <thead>
        <tr>
            <th>id</th>
            <th>goodsName</th>
            <th>scale</th>
            <th>action</th>
        </tr>
    </thead>
    <tfoot>
        <tr>
            <th>id</th>
            <th>goodsName</th>
            <th>scale</th>
            <th>action</th>
        </tr>
    </tfoot>
</table>
@section Scripts{
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.20/css/jquery.dataTables.css">
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.js"></script>
<script>
    $(document).ready(function () {
        $('#datatable').DataTable({
            ajax: {
                type: 'GET',
                dataType: 'JSON',
                url: '@Url.Action("GoodsList", "Home")'
            },
            columns: [
                { 'data': 'id' },
                { 'data': 'goodsName' },
                { 'data': 'scale' },
                {
                    'data': 'id',
                    'render': function (data) {
                        {
                            return '<a  href="#" title="ویرایش" style="margin-left:10px" class="btn btn-success button"  onclick="openModal(' + data + ');"><i class="fa fa-edit"></i></a><a  href="#" title="حذف" style="margin-right:10px"  class="btn btn-danger button"  onclick="deleteUser(' + data + ')"><i class="fa fa-trash"></i></a>'
                        }
                    },
                }
            ]
        })
    })
</script>
}

2.Controller:

2.Controller:

public IActionResult Index()
{
    return View();
}
public IActionResult GoodsList()
{
    var goodsScale =  new List<object>
    {
        new {id = 1, goodsName= "aa",scale="a"},
        new {id = 2, goodsName= "bb",scale="b"},
        new {id = 3, goodsName= "cc",scale="c"},
        new {id = 4, goodsName= "dd",scale="d"} 
    };
    return Json(new { data=goodsScale });
}

3.Result(网址应为:/home/index ):

3.Result(the url should be:/home/index):

这篇关于动作方法返回原始json数据而不是ASP.NET Core 2.2中的视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆