6

Tôi đang sử dụng sau đây để làm cho một cái nhìn cục bộ vào một chuỗi ...Render xem một phần chuỗi MVC4

 protected string RenderPartialViewToString(string viewName, object model) 
    { 
     if (string.IsNullOrEmpty(viewName)) 
      viewName = ControllerContext.RouteData.GetRequiredString("action"); 

     ViewData.Model = model; 

     using (var sw = new StringWriter()) 
     { 
      ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName); 
      var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw); 
      viewResult.View.Render(viewContext, sw); 

      return sw.GetStringBuilder().ToString(); 
     } 
    } 

Tuy nhiên nó sẽ trả về html với các thẻ lạ như thế này dưới đây ... (Tôi đã bao gồm một phần nhỏ vì tầm nhìn lớn của nó)

<$A$><div</$A$><$B$> class="modal hide fade"</$B$><$C$> id="dialog"</$C$><$D$> 

Điều này xảy ra trong suốt HTML. Phần này sẽ giống như thế này ...

<div class="modal hide fade" id="dialog" style="display: none;"> 
+0

bản sao có thể có của [MVC4 - cách hiển thị chế độ xem một chuỗi?] (Http://stackoverflow.com/questions/17273826/mvc4-how-to-render-a-view-a-string) – SlimShaggy

Trả lời

0

Lạ, sau khi làm sạch và xây dựng lại nó đã khắc phục vấn đề, phải là VS Gremlin.

10

Mã sau đây luôn làm việc cho tôi. Mặc dù tôi không thể thấy bất kỳ sự khác biệt lớn nào, và không thể hiểu đầy đủ lý do tại sao bạn lại nhận được kết quả đầu ra.

public static String RenderRazorViewToString(ControllerContext controllerContext, String viewName, Object model) 
     { 
     controllerContext.Controller.ViewData.Model = model; 

     using (var sw = new StringWriter()) 
      { 
      var ViewResult = ViewEngines.Engines.FindPartialView(controllerContext, viewName); 
      var ViewContext = new ViewContext(controllerContext, ViewResult.View, controllerContext.Controller.ViewData, controllerContext.Controller.TempData, sw); 
      ViewResult.View.Render(ViewContext, sw); 
      ViewResult.ViewEngine.ReleaseView(controllerContext, ViewResult.View); 
      return sw.GetStringBuilder().ToString(); 
      } 
     } 
+0

Hi Tentux , cảm ơn bạn đã trả lời của bạn, sau khi một sạch và xây dựng lại nó cố định vấn đề, phải là một Gremlin VS. – MrBeanzy

+0

Cảm ơn bạn đã làm việc rất tốt. –

Các vấn đề liên quan