ASP.Net MVC - необходимо отправить другие данные вместе с частичным просмотром - PullRequest
0 голосов
/ 19 мая 2010

Мне нужно отправить некоторые другие данные, в идеале обернутые в объект JSON, клиенту. Как и это, однако, мне нужно отправить частичное представление. Теперь я могу думать только о двух путях:

  1. Отправка объекта JSON, а затем повторный вызов для загрузки содержимого частичного представления в div.
  2. Отправьте HTML для частичного просмотра как свойство объекта JSON, а затем загрузите его в div.

Как мне поступить со вторым вариантом? Есть ли команда для рендеринга частичных представлений в строку? Или первый подход лучше?

Cheers, Дэмиен

1 Ответ

1 голос
/ 19 мая 2010

Есть ли команда для частичного рендеринга? просмотров в строку

Прямого пути, насколько я знаю, нет. Но это возможно с некоторой насмешкой. Я использую 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...