Частичное представление MVC3 с ajax, возвращающее только JSON - PullRequest
1 голос
/ 12 февраля 2012

Я новичок в веб-программировании и изучаю MVC, ajax, jQuery и т. Д. Кроме того, я использую некоторые элементы управления от Telerik.

И я застрял в одной конкретной точке.

У меня есть частичное представление, единственная цель которого - показать список загруженных файлов в сетке Telerik. И это прекрасно, когда я загружаю страницу в первый раз. Я делаю это так:

@Html.Partial("~/Views/Document/Lista.cshtml", Model.Files)

Но после завершения загрузки ajax-файла я бы хотел обновить конкретный div с этим частичным представлением с помощью вызова ajax:

$("#List").load("/Document/List/", { id: fk });

Я склонен использовать POST-вызов, потому что telerik grid требует некоторых данных в формате json, а json плохо работает с GET.

Теперь это действие моего контроллера:

[GridAction][HttpPost]
public ActionResult List(int id)
{
    Document doc = db.Documents.Where(d => d.ID == id).Single();
    return PartialView("~/Views/Document/List.cshtml", new GridModel(doc.Files));
}

И теперь это приведет ТОЛЬКО к json. Еще раз, когда я отрисовываю это в первый раз, все в порядке, так что представление не должно быть виновником. Я смотрю на ответ в Fiddler, и это выглядит примерно так:

{"data":[{"ID_File":54,"FK_Document":2,"FileName":"ckeditor_3.6.2.zip","FileType":"application/zip","FileData":null,"FileSize":2294443,"UploadingUser":null},{"ID_File":63,"FK_Document":2,"FileName":"254371_DropDownInGrid-CL.zip","FileType":"application/zip","FileData":null,"FileSize":1708740,"UploadingUser":"S-1-5-21-3024387492-927407738-3508986423-513"}],"total":14}

Точно так же, без HTML вообще.

Я пытался поиграть с различными опциями в моем методе действия, такими как изменение типа возвращаемого значения на JSON или возврат целого представления вместо частичного, но я всегда получал один и тот же результат: голый JSON.

Я погуглил, но нигде не смог найти подобную проблему ...

Итак, я прошу вашей помощи.

1 Ответ

1 голос
/ 12 февраля 2012

Возможно, вы захотите обновить сетку Telerik, не занимаясь json.Смотри: http://www.telerik.com/help/aspnet-mvc/telerik-ui-components-grid-client-api-and-events.html#rebind

...