6

ich folgendes bin mit einem Teilansicht auf einen String zu machen ...Render Teilansicht auf String 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(); 
     } 
    } 

jedoch den html mit seltsamen Tags wie dies unten zurück ... (I enthalten sind, ein kleiner Abschnitt als seine große Ansicht)

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

Dies geschieht im gesamten HTML. Dieser Bereich sollte so aussehen ...

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

möglich duplicate von [MVC4 - wie man eine Ansicht eine Zeichenfolge rendern?] (Http://stackoverflow.com/questions/17273826/mvc4-how-to-render-a-view-a-string) – SlimShaggy

Antwort

0

Seltsam, nach einem Clean und Rebuild behoben das Problem, muss ein VS Gremlin sein.

10

Der folgende Code hat immer für mich funktioniert. Obwohl ich keine größeren Unterschiede sehen kann und nicht vollständig verstehen kann, warum Sie die Ausgabe bekommen, die Sie bekommen.

+0

Hallo Tentux Danke für deine Antwort, nach einem Clean und Rebuild behoben das Problem, muss ein VS Gremlin sein. – MrBeanzy

+0

Danke hat super funktioniert. –