首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MVC将部分视图返回为JSON

MVC将部分视图返回为JSON
EN

Stack Overflow用户
提问于 2011-01-19 09:07:54
回答 2查看 114.5K关注 0票数 71

有没有一种方法可以从MVC的JSON响应中返回呈现部分的HTML字符串?

代码语言:javascript
复制
    public ActionResult ReturnSpecialJsonIfInvalid(AwesomenessModel model)
    {
        if (ModelState.IsValid)
        {
            if(Request.IsAjaxRequest()
                return PartialView("NotEvil", model);
            return View(model)
        }
        if(Request.IsAjaxRequest())
        {
            return Json(new { error=true, message = PartialView("Evil",model)});
        }
        return View(model);
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-19 10:28:19

您可以从PartialViewResult对象中提取html字符串,类似于此线程的答案:

Render a view as a string

PartialViewResult和ViewResult都是从ViewResultBase派生的,所以相同的方法应该适用于这两种方法。

使用上面线程中的代码,您将能够使用:

代码语言:javascript
复制
public ActionResult ReturnSpecialJsonIfInvalid(AwesomenessModel model)
{
    if (ModelState.IsValid)
    {
        if(Request.IsAjaxRequest())
            return PartialView("NotEvil", model);
        return View(model)
    }
    if(Request.IsAjaxRequest())
    {
        return Json(new { error = true, message = RenderViewToString(PartialView("Evil", model))});
    }
    return View(model);
}
票数 112
EN

Stack Overflow用户

发布于 2012-04-22 16:46:58

而不是RenderViewToString,我更喜欢这样的方法

代码语言:javascript
复制
return Json(new { Url = Url.Action("Evil", model) });

然后,您可以在javascript中捕获结果,并执行以下操作

代码语言:javascript
复制
success: function(data) {
    $.post(data.Url, function(partial) { 
        $('#IdOfDivToUpdate').html(partial);
    });
}
票数 34
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4730777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档