2012-02-12 34 views
1

我是新来的网络编程,我正在学习MVC,ajax,jQuery等,再加上我使用telerik的一些控件。MVC3局部视图与AJAX返回唯一的JSON

而我被困在一个特定的点。

我有一个局部视图,其目的只是显示telerik网格中上传文件的列表。当我第一次加载页面时,它呈现很好。我不喜欢这样写道:

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

但是,AJAX文件上传完成后,我想用一个Ajax调用局部视图更新特定的div:

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

我倾向于使用POST调用,因为telerik网格需要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。再一次,当我第一次渲染它时,每一个都没问题,所以视图不应该是罪魁祸首。我正在寻找在提琴手的反应,它看起来像这样:

{"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。

我GOOGLE了它,但无法找到无处类似的问题...

所以,我要求你的帮助。

回答