여기에 Vdex로 제안했습니다 : https://stackoverflow.com/a/5801502/973485 그리고 그가 발견 한 RenderPartialToString
메서드를 사용했습니다.다른 컨트롤러의 문자열보기
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult Test()
{
string t = ViewToString.RenderPartialToString("Index", null, ControllerContext);
return Content(t);
}
}
을하지만 난 다른 컨트롤러에서> 색인 홈을 렌더링하려면, 내가 얻을 : 그리고는 다음과 같이 완벽하게 작동이 같이
Value cannot be null.
Parameter name: controllerContext
:
public class FooController : Controller
{
public ActionResult Index()
{
string t = ViewToString.RenderPartialToString("Index", null, new HomeController().ControllerContext);
return Content(t);
}
}
가 있는가 뷰를 다른 컨트롤러에서 문자열로 전달하는 방법은 무엇입니까? 여러 가지 방법을 시도해 보았습니다. 모두 ControllerContext에서 실패합니다. 많은 감사합니다!
업데이트 :이 작업을 수행해야하는 이유 :
내가 위젯의 전체 웹 사이트가 상상, 각 페이지에 위젯의 양이 그래서 난 내 cshtml 파일을 하드 코딩 할 수없는, 동적입니다. 그러나 그 파일에는 위젯이 인쇄물을 인쇄 할 수있는 영역이 정의되어 있습니다. 이러한 위젯을 인쇄하려면 다른 위젯을 사용할 수있는 IWidgetController 목록과 edit, new 및 view 용 ActionResult를 포함해야하는 인터페이스 sais가 필요합니다. 위젯 예제 : CalenderController, NewsController, GalleryController 등등 ... 그래서 그 영역에서 나는 각 컨트롤러의 내용을 출력해야합니다. 이제는 URLHTML도로드 할 수 있지만 내부에서 처리하는 것이 더 빠를 것 같았습니다 ... 맞습니까?
foo/index의 홈 페이지로 홈 페이지를 전달하려는 경우 여기에 무언가가 누락되어 있지 않으면 경로/홈/색인으로보기 만 반환 할 수 있습니다. – davethecoder
년, 저는 CMS 시스템을 구축하고 있습니다. 모든 위젯 컨트롤러를위한 인터페이스가 있어야합니다. 나는 목록을 가지고있다. 그리고 데이터베이스는 다른 영역에서 컨트롤러가 페이지에 인쇄되도록 선택합니다. – BjarkeCK
보기에서 Html.RenderAction ("_ CalendarWidget", "Calendar")을 수행 할 수 없습니까? –