我正在使用Ajax在我的MVC控制器上调用方法。我希望这返回string[]
。我如何在Ajax / MVC中实现这一目标?
我是否需要先将其转换为JSON对象?如果是这样,我该怎么做?
由于
答案 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);
}