2012-08-30 2 views
1

MVC에 익숙하지 않고 팀원 중 다른 프로그래머가 때로는 학습 곡선이 느려지는 것이 아니기 때문에 믹싱에 대한 내 옵션이 무엇인지 알아 내려고합니다. 베타 릴리스에서 기능을 사용할 수있게 해주고 단기간에 솔루션으로 WebForms를 사용한 MVC 뷰 (또는 부분 뷰)에서 MVC로 다시 제작할 기회를 제공합니다.ASP.NET MVC 뷰를 ASP.NET WebForms에서 렌더링 할 수 있습니까?

나는 두 프레임 워크의 어셈블리를 참조하는 방법을 설명하지만 단일 페이지에서 이들을 혼합하는 방법을 설명하지는 않습니다.

예를 들어 사용자 컨트롤 (.ascx) 및보기 (.cshtml)를 사용하여 마스터 페이지 (.master.aspx)에 쉽게 렌더링 할 수 있습니까?

마치 서버 측에서보기를 실행하고 응답 스트림에 내용을 쓰는 서버 컨트롤이 필요합니다. 나는 다른 옵션을 asp.net 페이지로보기 자바 스크립트 아약스 것 같아요하지만 피할 수 있는지 궁금하네요.

+1

나는 프로젝트에서 내가 작업하고있는 프로젝트에서 WebForms와 MVC (주로 viewstate에 심각한 문제가 있음)를 혼합 할 때 심각한 한계를 경험 했으므로 확실한 답을 얻지 못했습니다. 뷰를 문자열로 렌더링하면 운이 좋을 것입니다 (http://stackoverflow.com/questions/483091/render-a-view-as-a-string). –

+0

이봐, 나쁘지 않은데 ... 감사합니다. –

+0

두 개의 ASP.Net MVP가 개발 한 [MVP Web Forms] (http://webformsmvp.com/)을보고 싶을 수도 있습니다. –

답변

2

예 아니요.

ASP.NET MVC와 WebForms를 혼합 할 수는 있지만 권장하지 않으며 혼합 할 수있는 것에 대한 제한 사항이 있습니다. 내 게시물을 통해 나는 면도기/CSHTML보기가 아닌 ASPX보기를 언급합니다. WebForms에서 대체 ViewEngine을 사용하는 것은 거의 불가능합니다.

MVC 뷰 (ASPX, CSHTML이 아님)는 WebForms에서 올바르게 초기화하고 필요한 경우 모델 개체를 제공하는 경우에만 사용할 수 있습니다 (뷰는 CodeBehind 클래스가없는 경우를 제외하고 일반 aspx 페이지와 비슷 함) .

ASCX 컨트롤과 System.Web.UI.Control 하위 클래스를 ASP.NET MVC 뷰에 몇 가지 사소한 해킹으로로드 할 수도 있습니다 (완벽하지는 않지만 컨트롤 평생 이벤트는 실행되지 않습니다. 보기로 렌더링).

MVC 웹 응용 프로그램과 동일한 환경에서 ASPX 페이지를 가질 수도 있습니다 (라우팅 작업을하는 한). CodeBehind 스타일의 ASPX는 사용자를 MVC 컨트롤러 작업으로 리디렉션 할 수 있으며 그 반대의 경우도 가능합니다.

그러나 WebBrowser 페이지에서 CodeBehind를 사용하여 오르막 작업을 많이하지 않아도 MVC 컨트롤러 작업을 호출 할 수는 없지만 원하는 이유를 실제로 알 수는 없습니다.

원본 질문을 다시 말하고 궁극적으로 달성하고자하는 것에 대해 생각해야한다고 생각합니다. 개인적으로 이것은 유지 보수 작업 이었다면 순수한 WebForms를 사용하고 새 프로젝트에만 MVC를 사용합니다. WebForms는 죽지 않았으며 ScottGu에게 물어보십시오.

+0

조언을 주셔서 감사합니다 - 내 질문에 답을 주었다. 나는 충분히 믿는다. 비록 내가 어떻게 표현을 바꾸는 지 완전히 확신 할 수는 없지만, 원한다면 자유롭게 편집 할 수있다. –

관련 문제