0

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 another 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

1

1 Answer 1

1

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;
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.