2013-09-09 3 views
1

Я использую Ajax для вызова метода на моем MVC-контроллере. Я хочу, чтобы это вернуло string[]. Как достичь этого в Ajax/MVC?Возвращающаяся строка [] из контроллера с использованием Ajax

Нужно ли сначала преобразовать его в объект JSON? Если да, то как мне это сделать?

Thanks

+0

asp.net-mvc и mvc не то же самое. Первый - это структура, в то время как последняя - шаблон дизайна. – Leri

+0

@Leri, но ASP.NET - это основа, основанная на MVC – Yang

+0

@DaveJust Как это сделать их одинаковыми? – Leri

ответ

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

Я был рядом! Это утро в понедельник, и я слишком сонлив для этого :) Спасибо за быстрый и точный ответ – heymega

+0

Да, понедельник утром всегда немного особенное :) Рад, что это работает для вас ... – Ohlin

2

Вы можете вернуть JSON с любыми параметрами, которые могут вам понадобиться. Создать действие как один пыльник

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