我需要将一些理想情况下包装在JSON对象中的其他数据发送到客户端。然而,我需要发送部分视图。现在我只能想到两种方式:
我将如何进行第二种选择?是否有将部分视图呈现为字符串的命令?或者第一种方法更好?
干杯, 达明
答案 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;