控制器不返回json结果来查看

时间:2018-04-05 14:52:17

标签: c# jquery asp.net-core-mvc jsonresult

我试图通过使用jquery来监听更改来更新复选框列表。由于某种原因,似乎控制器方法没有返回JSON。我将此代码基于this example

在示例中,控制器调用return Json(data, JsonRequestBehavior.AllowGet);,但我只能return Json(data)工作。我的理论是返回类型必须特别允许GET,但我不知道如何使其工作。

我的代码运行正常,没有错误,所有3个控制台语句都出现在Web浏览器中。

我的jquery代码(在我看来):

$('#lgcheese').change(function() {
    ddToPopulate.empty();
    console.log('change detected');
    $.getJSON(CoIdUrl, { CoName: $(this).val() }, function (data) {
        console.log('in shit');
        if (!data) { console.log('no json returned');return;}
        ddToPopulate.append($('<ListItem></ListItem>').val('').text('Please select'));
        $.each(data, function(index, item) {
            ddToPopulate.append($('<ListItem></ListItem>').val(item.Value).text(item.Text));
        });
    });
});

稍后在我的视图中,我调用:<CheckBoxList ID="cheesebox"></CheckBoxList>来创建jquery应该填充的复选框列表。

我的控制器有方法:

using System;
using System.Security.Claims;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
[HttpGet]
public JsonResult FetchCoIds(string CoName)
{
   var data = new { Value = "val", Text = CoName+"_val1" };
   return Json(data);
}

1 个答案:

答案 0 :(得分:0)

您需要使用行为更新操作方法。试试这个

v9.4.6.v20170531

注意:此答案适用于asp.net MVC而不适用于Core