2016-10-26 2 views
1

내 작업MVC 뷰를 HTML 문자열로 변환 - 오류 "값이 예상 범위 내에 들지 않습니다." 다음

public PartialViewResult PrintOrder(string orderNo) 
     { 
      ViewBag.OrderId = orderNo; 
      return PartialView(); 
     } 

다음 것은 값이 예상 범위를 벗어 않습니다 "로 내 코드 내가 result.View.Render (VC, SW)에서 오류를 얻고있다

public static String RenderViewToString(PartialViewResult result,ControllerContext context, String viewPath,string orderNo, object model = null) 
     { 

      context.Controller.ViewData.Model = model; 
       using (var sw = new StringWriter()) 
       { 
        result.View = ViewEngines.Engines.FindPartialView(context, "PrintOrder").View; 

        ViewContext vc = new ViewContext(context, result.View, result.ViewData, result.TempData, sw); 

        result.View.Render(vc, sw); 

        var html = sw.GetStringBuilder().ToString(); 

        return html; 
      } 

       //return "No Data"; 
     } 

입니다 . "

무엇이 오류입니까?

+0

나쁜 소식은 https://stackoverflow.com/questions/11996205를 참조하십시오. –

답변

0

부분 뷰를 html 문자열로 변환하고 컨트롤러에서 문자열을 반환해야하는 경우이 코드를 시도하십시오.

Public ActionResult PrintOrder(string orderNo) 
{ 
//code to get the model 
this.ViewData.Model = YourModel; 
//ViewData["ordno"] = orderNo; uncomment this if you need 
var htmlStr = string.Empty; 
try { 
    var sw = new StringWriter(); 
    var viewResult = ViewEngines.Engines.FindPartialView(this.ControllerContext, "partialviewName"); 
    var viewContext = new ViewContext(this.ControllerContext, viewResult.View, this.ViewData, this.TempData, sw); 
    viewResult.View.Render(viewContext, sw); 
    viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View); 
    htmlStr = sw.GetStringBuilder().ToString(); 
}catch(Exception e){ 
} 

return htmlStr; 
} 
+0

이것은 질문과 무슨 관련이 있습니까? 그리고 코드는 OP 코드의 반복입니다! –

관련 문제