2012-09-28 4 views
1

고객 개체를 가져 와서 HTML을 렌더링하는 부분보기가 있습니다. 고객 목록의 경우 뷰에서 foreach 루프로 renderpartial을 갖는 것과 마찬가지로 서버 측에서 부분 뷰의 출력을 병합하는 방법.부분보기의 병합 출력

//how to write action method for below 
foreach(var item in customerslist) 
{ 
//get html by calling the parview 
outputhtml += //output from new _partialviewCustomer(item); 
} 

return outputhtml; 
다음과 같은 확장 메서드를 사용하여 문자열에 대한 부분을 렌더링 할 수

답변

1

:이에 대한 통찰력을 제공하시기 바랍니다 수

foreach(var item in customerslist) 
{ 
//get html by calling the parview 
outputhtml += ControllerContext.RenderPartialViewToString("~/Views/SomeController/_Customer.cshtml", item) 
} 

return outputhtml; 
+0

당신이 얻을 경우 기회 : 다음

public static class HtmlExtensions { public static string RenderPartialViewToString(this ControllerContext context, string viewName, object model) { if (string.IsNullOrEmpty(viewName)) { viewName = context.RouteData.GetRequiredString("action"); } context.Controller.ViewData.Model = model; using (var sw = new StringWriter()) { var viewResult = ViewEngines.Engines.FindPartialView(context, viewName); var viewContext = new ViewContext(context, viewResult.View, context.Controller.ViewData, context.Controller.TempData, sw); viewResult.View.Render(viewContext, sw); return sw.GetStringBuilder().ToString(); } } } 

과 . 나는 이것에 대해 많은 검증 자료를 보았지만 그것을 습득하는 방법을 알지 못합니다. 다시 한 번 감사드립니다 .http : //stackoverflow.com/questions/12613188/validate-only-ajax-loaded-partial-view/12615865#12615865 – Sunny