开发者

ASP.Net MVC - Need to send other data along with Partial View

I need to send some other data, ideally wrapped in a JSON object, down to the client. As well as that however I need to send a Partial view. Now I can only think of two ways:

  1. Send JSON object and then make a开发者_StackOverflow社区nother call to load contents of partial view into div.
  2. Send HTML for Partial View as a property of the JSON object and then load it into div.

How would I go about doing the second option? Is there a command to render partial views into a string? Or is the first approach better?

Cheers, Damien


Is there a command to render partial views into a string

No direct way as I know of. But it's possible with some mocking. I use Moq here, but any mocking framework would do.

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;
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜