2009-03-28 2 views
1

WebForms 응용 프로그램에 ASP.NET MVC를 추가하는 중입니다. 처음부터 새로 만드는 ASP.NET MVC 솔루션의 깔끔한 기능 중 하나는 솔루션 탐색기와 Add> New Item ...을 마우스 오른쪽 버튼으로 클릭하면 MVC 템플릿을 포함하는 템플릿 목록이 제공된다는 것입니다. 그러나 WebForms app에서는 이러한 템플릿이 나타나지 않습니다.WebForms App에서 VS2008의 MVC 템플릿을 활성화하는 방법

.sln 솔루션 파일에 ASP.NET MVC 앱임을 나타내는 설정이있을 수 있다고 생각했지만 그 밖의 모든 것을 찾지 못했습니다.

편집 : 질문을 확장하려면 Visual Studio에서 MVC 응용 프로그램의 솔루션 탐색기에서 컨트롤러 폴더를 마우스 오른쪽 버튼으로 클릭 할 때 "컨트롤러"메뉴 항목을 "추가"메뉴에 추가하는 방법을 알고 있습니까? ? 마찬가지로 Views 폴더를 마우스 오른쪽 버튼으로 클릭하면 "보기 ..."메뉴 항목이 "추가"메뉴에 추가됩니다. Visual Studio는이 정보를 어디에서 가져 오며 어떻게이 두 폴더를 다른 웹 응용 프로그램에 추가하고 동일한 기능을 사용할 수 있습니까?

아이디어가 있으십니까?

답변

2

은 그에 대한 논리가 DLL에 포함되어 있다고 생각 새 ASP를 만들 때 사용되는 프로젝트 템플릿에 등록되어

Microsoft.VisualStudio.Web.ExtensionsUI

. NET MVC 프로젝트 :

<WizardExtension> 
    <Assembly> 
    Microsoft.VisualStudio.Web.Extensions, 
    Version=9.0.0.0, 
    Culture=neutral, 
    PublicKeyToken=31bf3856ad364e35 
    </Assembly> 
    <FullClassName> 
    Microsoft.VisualStudio.Web.Mvc.TemplateWizard 
    </FullClassName> 
</WizardExtension> 

C : \ 프로그램 파일 \의 Microsoft Visual Studio 9.0 \ Common7 \ IDE \ ProjectTemplates \ CSHARP \ 웹 \ 1033 \ MvcWebApplicationProjectTemplatev1.cs.zip

당신은 당신의 .xxproj 파일에서 프로젝트 형식의 GUID와 주변 아마도 엉망 수 :

<ProjectTypeGuids> 
    {603c0e0b-db56-11dc-be95-000d561079b0}; 
    {349c5851-65df-11da-9384-00065b846f21}; 
    {fae04ec0-301f-11d3-bf4b-00c04f79efbc} 
</ProjectTypeGuids> 

기본 것들 ​​것 같다 ASP.NET MVC 프로젝트의 경우 웹 응용 프로그램의 프로젝트와 비교하여 거기에서부터 시작하십시오.

그러나 이러한 많은 상황에서 gisresearch에 동의 할 것입니다. MVC보다 복잡한 프로젝트 (MVC 하나)를 먼저 작성한 다음 원작을이 프로젝트로 옮기는 것이 더 쉽습니다.

동일한 웹 응용 프로그램에서 여러 프로젝트가 호스팅되는 것을 막을 수있는 방법은 없습니다. 웹 응용 프로그램의 공통 논리를 공유 클래스 라이브러리로 가져온 다음 약간 다른 네임 스페이스를 사용하여 깨끗한 MVC 응용 프로그램에서 참조하십시오 , IIS 내에서 두 사이트를 병합하고 dll을 공유 bin 폴더에 놓거나 (또는 ​​이름을 지정하고 전역 어셈블리 캐시에 저장) 이미지/스크립트를 공유하고 멀리 이동하십시오. Global.asax는 두 가지 공통점이 있습니다.

0

다른 점은 어떻습니까? 먼저 asp.net mvc 프로젝트를 만든 다음 웹 양식 코드를 추가하십시오.

다음은 Scott Hanselman의 hybrid app의 예입니다.

또한 하나의 기본 asp.net mvc 응용 프로그램과 asp.net 웹 양식 응용 프로그램을 만든 다음 두 프로젝트의 텍스트 비교를 통해 차이점을 확인하십시오.

0

언급 한 Zhaph처럼 ProjectTypeGuid를 추가하면 저에게 효과적입니다.웹 프로젝트를 언로드하고 추가 ProjectTypeGuid를 편집하여 기존 목록에 추가하십시오.

{603c0e0b-db56-11dc-be95-000d561079b0};

관련 문제