Я новичок в веб-программировании и изучаю 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.
Я погуглил, но нигде не смог найти подобную проблему ...
Итак, я прошу вашей помощи.