2010-05-19 2 views
0

Мне нужно отправить некоторые другие данные, идеально завернутые в объект JSON, вплоть до клиента. Кроме того, мне нужно отправить частичный вид. Теперь я могу только думать о двух путях:ASP.Net MVC - необходимо отправить другие данные вместе с Partial View

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

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

Приветствия, Damien

+0

см. Http://stackoverflow.com/questions/1471066/partial-views-vs-json-or-both/5502426#5502426 –

ответ

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; 
Смежные вопросы