使用Ajax从控制器返回String []

时间:2013-09-09 09:41:10

标签: c# ajax asp.net-mvc

我正在使用Ajax在我的MVC控制器上调用方法。我希望这返回string[]。我如何在Ajax / MVC中实现这一目标?

我是否需要先将其转换为JSON对象?如果是这样,我该怎么做?

由于

2 个答案:

答案 0 :(得分:4)

在ASP.NET中,您可以编写一个这样的简单控制器:

public JsonResult GetStringArray()
{
    string[] d = {"a","b","d"};
    return Json(d, JsonRequestBehavior.AllowGet);
}

然后您可以使用http://hostname/controllerName/GetStringArray调用它,输出将为["a","b","d"]

如果您想提出GET请求,请务必在转换时添加JsonRequestBehavior.AllowGet

通过使用类似jQuery的框架,您可以轻松填充下拉列表。

<script src="~/Scripts/jquery.min.js"></script>
<select id="selectString"></select>
<script>
    $(document).ready(function () {
        $.getJSON("http://hostname/controllerName/GetStringArray", function (data) {
            $.each(data, function (index, text) {
                $('#selectString').append(
                    $('<option></option>').val(index).html(text)
                );
            });
        });
    });
</script>

答案 1 :(得分:2)

您可以使用您可能需要的任何参数返回JSON。 创建一个像下面那样的动作

public JsonResult AjaxHandler(string SomeParam)
{
    return Json(new{
            someOtherDataId = 3,
            stringArray = 
                new string[] {"one", "two", "three", "four"}
        },
    JsonRequestBehavior.AllowGet);
}