ASP.Net MVC - 需要与Partial View一起发送其他数据

时间:2010-05-19 16:11:20

标签: jquery asp.net-mvc ajax json partial-views

我需要将一些理想情况下包装在JSON对象中的其他数据发送到客户端。然而,我需要发送部分视图。现在我只能想到两种方式:

  1. 发送JSON对象,然后再次调用将部分视图的内容加载到div。
  2. 将部分视图的HTML作为JSON对象的属性发送,然后将其加载到div中。
  3. 我将如何进行第二种选择?是否有将部分视图呈现为字符串的命令?或者第一种方法更好?

    干杯, 达明

1 个答案:

答案 0 :(得分:1)

  

是否有渲染部分的命令   查看字符串

据我所知没有直接的方法。但有些嘲笑可能会有所作为。我在这里使用Moq,但任何模拟框架都可以。

var writer = new StringWriter();
var context = new Mock<HttpContextBase>();
var response = new Mock<HttpResponseBase>();
context.Setup(ctx => ctx.Response).Returns(response.Object);
response.Setup(res => res.Output).Returns(writer);

var oldContext = ControllerContext.HttpContext;
ControllerContext.HttpContext = context.Object;

var partialView = PartialView("TagCloud", tags);
partialView.ExecuteResult(ControllerContext);
var resultHtml = writer.ToString();

ControllerContext.HttpContext = oldContext;