如何在MVC控制器中返回JSON

11
我正在使用 .ajax 调用我的控制器方法,我的控制器方法会调用返回字典的 Web 服务。现在我需要返回它并将其填充到下拉列表中。我正在尝试使用 return JSON 并通过 success(response) 填充。
我正在使用 MVC 1.0。
        $.ajax(
            {
                url: 'LookupValue/',
                data: { 'sLookupIds': selectedtext },
                datatype: "json",
                traditional: true,
                success: function (data) {
                    alert(data.value);
                }
            });

先提前感谢。

2个回答

20
在控制器中。
    public JsonResult LookupValue(String sLookupIds)
    {

        SelectList olist = new SelectList(oDict, "key","value");

        return Json(olist);

  }

在视图中

        $.ajax(
            {
                url: 'LookupValue/',
                data: { 'sLookupIds': selectedtext },
                datatype: "json",
                traditional: true,
                success: function (data) {
                    $.each(data, function (index, val) {
                        $('#lookup')
                        .append($("<option></option>")
                        .attr("value", val.Value)
                        .text(val.Text));
                        //ddHTML = ddHTML + "<option  value='" + val.Value + "'>'" + val.Texts + "'</option>";
                    });
                }
            });

你可以使用ActionResult和返回SelectList代替JsonResult和Json。这样,你就可以使用内容协商... - mko

0
在你的控制器(Controller)中的操作(Action)中:
return Json(data);

其中,数据是您要序列化为JSON的对象。

如果要使用Json.NET,请覆盖Json方法即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接