【问题标题】:MVC3 partial view with ajax returning only JSON带有 ajax 的 MVC3 部分视图仅返回 JSON
【发布时间】:2012-02-12 01:25:35
【问题描述】:

我是 Web 编程新手,我正在学习 MVC、ajax、jQuery 等,另外我正在使用 Telik 的一些控件。

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

我有一个部分视图,其唯一目的是在 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。再一次,当我第一次渲染它时,一切都很好,所以视图不应该是罪魁祸首。我正在查看 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。

我google了一下,没找到类似的问题...

所以,我请求你的帮助。

【问题讨论】:

    标签: ajax asp.net-mvc telerik-mvc


    【解决方案1】:

    您可能需要考虑在不处理 json 内容的情况下刷新 Telerik 网格。 看: http://www.telerik.com/help/aspnet-mvc/telerik-ui-components-grid-client-api-and-events.html#rebind

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-30
      • 1970-01-01
      • 1970-01-01
      • 2012-09-06
      • 1970-01-01
      • 2012-09-28
      • 1970-01-01
      相关资源
      最近更新 更多