Html.RenderPartial("~/Views/Payments/MyControl.ascx");
을 호출하면 뷰에서 MyControl.ascx가 System.Web.Mvc.ViewUserControl
을 직접 상속하는 컨트롤 인 경우 작동합니다. 컨트롤이 System.Web.Mvc.ViewUserControl
에서 파생 새로운 클래스를 상속하는 경우Html.RenderPartial을 사용하여 파생 부분 뷰 렌더링
그러나, Html.RenderPartial("~/Views/Payments/MyDerivedControl.ascx");
에 대한 호출이 그러한 뷰가 존재하지 않음을보고, 실패합니다.
class MyDerivedControl : System.Web.Mvc.ViewUserControl
{
public Method()
{
ViewData["SomeData"] = "test";
}
}
이 해결 방법은, 또는 내가이 일을해야하는 또 다른 방법이있다 :
예 System.Web.Mvc.ViewUserControl
을 유도? HTML 도우미일까요?
는; 내 질문에 제공된 데이터를 ** 전달 된 ** 부분보기로 전달하는보기 및 결과 (해석 된 ViewUserControl 클래스에 의해) 후 표시하려고 할 때 오류가 발생했습니다. 데이터가 어디서 왔는지는 중요하지 않습니다. –
@FreshCode, 나는이 특별한 예외가 왜 발생하는지 전혀 모른다. 뷰가 MVC 애플리케이션에서 시도한 방식대로 상속되지 않아야한다는 것만 알면됩니다. 뷰는 컨트롤러에서 오는 데이터를 표시하기위한 것입니다. 마스터 페이지, 부분보기, 뷰에서 기능을 작성하고 다시 사용할 수있는 HTML 도우미와 같은 기술이 있습니다. VS에서 생성 된 기본 ASP.NET MVC 프로젝트 템플릿에는'ascx' 컨트롤과 관련된'.cs' 파일조차 없습니다. –