используя JavaScript, чтобы получить JSON из контроллера для отображения в представлении - PullRequest
1 голос
/ 13 марта 2012

Это то, что я делаю в контроллере (работает нормально):

public JsonResult DepartmentList(string id)
{
JsonResult jr = new JsonResult();

var _menu = from a in DataContext.GetDepartment()
            select new { ID = a.ID, Name = a.Name };

jr.Data = _menu.ToList();
jr.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
return jr;
}

И я хочу использовать javascript, чтобы получить JSON, который я вернул в контроллере ниже, для отображения в списке иполучить результат:

<a href="blahblah.com/Products/dep=1?tab=2"> Department name1 </a>
<a href="blahblah.com/Products/dep=2?tab=2"> Department name2 </a>
....

Спасибо.

Ответы [ 3 ]

1 голос
/ 13 марта 2012

Вы можете использовать AJAX:

$.ajax({
    url: '@Url.Action("DepartmentList", new { id = "123" })',
    type: 'GET',
    success: function(result) {
        // the result variable here will represent the list returned by your controller
        $.each(result, function() {
            // we are looping through the elements of the list 
            // and each element will have an ID and Name property that
            // you could use here:
            alert('id=' + this.ID + ', name=' + this.Name);
        });
    } 
});

Например, если вы хотите создать список якорей и добавить их в конец тела:

success: function(result) {
    $.each(result, function() {
        $('body').append(
            $('<a/>', {
                text: this.Name,
                href: 'blahblah.com/Products/dep=' + this.ID + '&tab=2'
            })
        );
    });
} 
1 голос
/ 13 марта 2012

Используя ajax,

$.post("DepartmentList", {id: "yourID"}, ajaxOK);
    function ajaxOK(data){     
      for(i=0; i< data.length; i++){
      $('a:nth-child('+(i+1)+')').text(data[i]);
      }
    }
1 голос
/ 13 марта 2012
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...