2017-10-06 3 views
0

강력하게 형식화 된 모델 (Umbraco.ModelsBuilder.ModelsModeAppData 또는 Dll 중 하나로 설정)을 사용해 보았습니다. 어떻게 작동하는지 완전히 이해하지 못했습니다.Umbraco 7.6.9에서 강력한 형식의 모델을 사용합니까?

이미 Umbraco.ModelsBuilder.ModelsMode 값을 변경하고 모델 백도시 내부에서 모델을 생성 한 다음 App_Data\Models을 Visual Studio에 포함 시켰지 만 그 다음은 무엇입니까?

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage<ContentModels.Home> 
@using Our.Umbraco.Vorto.Models; 
@using Our.Umbraco.Vorto.Extensions; 
@using ContentModels = Umbraco.Web.PublishedContentModels; 

이것은 내 홈보기의 코드입니다. 시도 할 때마다 내 콘텐츠에서 @Model.PROPERTY 또는 @CurrentPage.PROPERTY에 액세스 할 수 없습니다. 내 MODEL.generated.cs 파일 안에 다른 속성을 볼 수 있습니다.

@Model.PROPERTY과 같은 작업을 수행하기 위해 수행해야 할 단계는 무엇입니까?

답변

0

"동적"모델에 대해 말하는 것이 아니라 에 의해 생성 된 강력한 형식의 모델 모델 작성자. 기본적으로 Umbraco는 모델을 메모리에 저장하고 즉시 생성하는 PureLive 설정을 제공합니다. 그것은 "동적 인"것으로 간주 될 수 있습니다.

툴과 행동의 잘 여기에 설명되어 있습니다 : 그것의 형태에 관해서는 https://github.com/zpqrtbnk/Zbu.ModelsBuilder/wiki

, 당신은 바로이 곳에서 모든 그것에 대해 찾을 수 있습니다 https://github.com/zpqrtbnk/Zbu.ModelsBuilder/wiki/Builder-Modes

하지만 당신의 질문에 대답 - 당신이 변경 한 후 이 구성을 사용하려면 웹 사이트를 출하 할 DLL 안에 이러한 클래스를 유지해야하므로 응용 프로그램을 컴파일해야합니다. 또한 Umbraco Backoffice의 개발자 대시 보드에서 바로 모델을 재생성 할 수 있습니다.

DLL, LiveDLL 또는 PureLive 구성을 사용하려면 AppData 또는이 모드와 함께 사용되는 다른 디렉토리에서 생성 된 클래스를 제거해야합니다. '그 하나의 유형이 콘텐츠 유형 파일의 모델이되기를 원합니다.'

그 후 당신은 Model.Content.PropertyAlias ​​를 통해 문서 유형의 모든 속성에 액세스 할 수 있어야합니다. 내용 개체를 놓친 것일 수 있습니다.이 개체는 사용자 문서의 강력한 형식의 IPublishedContent 표현입니다.

은 당신이 그것을 작동 :)

+0

그래서 'DLL'로 변경하고 모델을 빌드하기 위해 백 오피스에 가서 VS에서 작업해야합니까? 나는 안타깝게도 일을 할 수 없었습니다. 'App_Data \ Models'는 프로젝트에 포함되어서는 안됩니다. 맞습니까? – MortenMoulder

+0

@MortenMoulder 사용하려는 경우 사용해야합니다. DLL로 변경하면 프로젝트에서 생성 된 DLL을 참조해야하며 작동해야합니다. –

+0

그리고 생성 된 DLL은'\ bin' 폴더 안에'Umbraco.Web.PublishedContentModels.dll'입니다. 맞습니까? – MortenMoulder

0

좋아요 수 있도록하는 데 도움이 될 것입니다 희망, 그래서 (아마 또는 7.6.8) 일부 최신 7.6.9 버전의 변화가 계속 것처럼 보인다. 이제해야 할 일입니다.

<add key="Umbraco.ModelsBuilder.Enable" value="true" /> 
<add key="Umbraco.ModelsBuilder.ModelsMode" value="Dll" /> 

그런 다음 백 오피스에 들어가서 모델을 생성 할 수 있습니다. 모델 은 프로젝트에 포함 된입니다 (위치 : ~\App_Data\Models\). ~\bin\ 폴더의 Umbraco.Web.PublishedContentModels.dll도 포함해야합니다.

그렇기 때문에.내가 포함했기 때문에

더 이상의 유형

이가 발생했다

콘텐츠 형식 파일에 대한 modle되고 싶어 : 내 응용 프로그램에서이 말을로드하려고 할 때 내 생각 NET 코어, 오류가 발생했습니다 모두 안에 ~\bin\, 즉 내 Project.dll, Project.dll.configProject.pdb 개의 파일도 포함 시켰습니다. Project.dll 파일에는 분명히 동일한 모델이 포함되어 있으므로이 세 파일을 제외해야했습니다.

지금은 간단하게 작동하며 이제는 @Model.Content.PROPERTY을 완벽하게 처리 할 수 ​​있습니다.

+0

DLL로 모델 모드를 설정 한 경우 App_Data/Models에서 모델을 삭제할 수 있습니다. 사용되지 않기 때문에 유형에 대해 하나 이상의 모델에 불만을 나타냅니다. –

+0

@MarcinZajkowski 아니요. 'Project.dll' 파일 때문에 불평하지 않았습니다. – MortenMoulder

+1

예, App_Data에 모델 클래스가 있고 가정 할 때이 DLL로 컴파일 되었습니까? 마침내 문제가 해결 되었으면 좋겠습니까? –