2013-11-23 2 views
2

Я ищу решение для своей проблемы в поисковой системе и stackoverflow.I найти много ответа, но ничто из них не помогло мне. Вот мой контроллер:ASP.NET MVC получить список от контроллера с ajax

[HttpGet] 
    public JsonResult Get() 
    { 
     var cl = new List<Category>(); 
     cl.Add(new Category() 
      { 
       Name = "C#" 
      }); 
     cl.Add(new Category() 
      { 
       Name = "MVC" 
      }); 
     return Json(cl.ToList(),JsonRequestBehavior.AllowGet); 
    } 

и категория класса ниже:

public class Category 
{ 
    public string Name { get; set; } 

} 

На мой взгляд, я хочу перечислить каждый элемент данных.

<script type="text/javascript"> 
    $(document).ready(function() { 
     $.ajax({ 
      type: "GET", 
      url: '@Url.Action("Get","Category")', 
      contentType: "application/json;charset=utf-8", 
      data: { a: "testing" }, 
      dataType: "json", 
      success: function(data) { 
       //<ul> 
        //<li>C#</li> 
//<li>MVC</li> 
      }, 
      error: function() { alert('error....'); } 
     }); 
    }); 

</script> 

Как я могу это сделать?

+3

И проблема в том, что ...? Любые ошибки? Что произойдет, если вы отлаживаете? Одна вещь, которую я вижу здесь, это то, что вы передаете параметр {a: "testing"}, и ваше действие Get() не имеет этого. – Romias

+0

Не допускайте ошибок. В моем коде зрения 'Succes: function (data) {//}' this data return list.Id хотел бы отобразить этот список как '

' – Zamir10

+1

На практике разработчику нужны специальные js библиотеки, чтобы установить такую ​​ситуацию, например, kendoi ui: http://www.youtube.com/watch?v=PkeBZkqVcrs. Во-вторых, вы должны использовать js для этого. –

ответ

3

Вы могли бы использовать более короткий getJSON так:

var getUrl = '@Url.Action("Get")'; 
var resultDiv = $('#result'); 
$.getJSON(getUrl, data: { a: "testing"}, function (data) { 
           resultDev.append('<ul>') 
             $.each(data, function (index, item) { 
          resultDiv.append($('<li/>', { text: item.name })); 
           }); 
          }); 

Не видя разметку я сделал предположение о выводе на DIV только для демонстрационных целей.

+0

спасибо за ответ. Но не работал. – Zamir10

+0

Извините, не вижу параметров. Я добавил их к решению. Я нахожусь на iPhone и не могу запустить его. Дайте мне знать, если все еще нет хорошего, и я удалю ответ. – hutchonoid

+0

снова я получаю error.Parameters заявление не назначается – Zamir10

2

Спасибо @hutchonoid. из-за вас я нахожу решение. Я использую ваш код и обновляю свой код:

$(document).ready(function() { 
        $.ajax({ 
      type: "GET", 
      url: '@Url.Action("Get","Category")', 
      contentType: "application/json;charset=utf-8", 
      data: { a: "testing" }, 
      dataType: "json", 
      success: function (data) { 
       $.each(data, function(index,item) { 
        $("#cat").append('<li>'+item.Name+'</li>'); 
       }); 
      }, 
      error: function() { alert('error....'); } 
     }); 

Другие - то же самое.

Смежные вопросы