2010-05-19 60 views
0

我需要發送一些其他數據,理想情況下包裝在一個JSON對象中,直到客戶端。以及那,但是我需要發送一個部分視圖。現在我只能想到兩種方法:ASP.Net MVC - 需要發送其他數據以及部分視圖

  1. 發送JSON對象,然後再次調用將部分視圖的內容加載到div中。
  2. 將部分視圖的HTML作爲JSON對象的屬性發送,然後將其加載到div中。

我該如何去做第二個選擇?是否有命令將部分視圖渲染爲字符串?或者第一種方法更好?

乾杯, 達明

+0

請參閱http://stackoverflow.com/questions/1471066/partial-views-vs-json-or-both/5502426#5502426 – 2011-08-03 12:56:17

回答

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;