Ваш вопрос не содержит много деталей, чтобы действительно определить, что ваш вопрос, но здесь площадь несколько предложений:
Убедитесь, что ваш файл Placement.info до даты для DisplayType вы пытаетесь для использования, вот пример одного из моих:
<Placement>
<Place Parts_McrfProfile_Edit="Content:3"/>
<Place Parts_McrfProfile_Summary="Content:6"/>
<Place Parts_McrfProfileList_Edit="Content:3"/>
<Place Parts_McrfProfileList_Summary="Content:6"/>
<Place Parts_McfProfile_List="Content:6"/>
<Match DisplayType="Detail">
<!-- hide summary, show full content, for Detail -->
<Place Parts_McrfProfile_Summary="-"
Parts_McrfProfileList_Summary="-"
Parts_McfProfile_List="-"
Parts_McrfProfile="Content:6"
Parts_McrfProfileList="Content:6"
/>
<Place Parts_Common_Metadata="-"/>
</Match>
<Match DisplayType="Summary">
<Place Parts_Common_Metadata_Summary="-"/>
</Match>
<Match DisplayType="ListView">
<Place Parts_Common_Metadata_Summary="-"
Parts_McrfProfile_Summary="-"
Parts_McrfProfileList_Summary="-"
Parts_McrfProfile="-"
Parts_McrfProfileList="-"
Parts_McrfProfile_List="Content:6"/>
</Match>
</Placement>
Затем в драйвере дисплея, убедитесь, что вы создаете правильные типы отображения, здесь приведен пример использования нескольких:
protected override DriverResult Display(
McrfProfilePart part, string displayType, dynamic shapeHelper)
{
return Combined(
ContentShape("Parts_McrfProfile",
() =>
{
part.ProfileDetail = _profileService.GetProfileDetail(part.ProfileId);
McrfProfileDetailViewModel profileDetailViewModel = new McrfProfileDetailViewModel();
profileDetailViewModel.ProfileDetail = part.ProfileDetail;
return shapeHelper.Parts_McrfProfile(ProfileDetail: profileDetailViewModel);
}),
ContentShape("Parts_McrfProfile_List",
() =>
{
return shapeHelper.Parts_McrfProfile_List(ProfileRecord: part);
}),
ContentShape("Parts_McrfProfile_Summary",
() =>
{
McrfProfileSummaryViewModel profileSummaryViewModel = new McrfProfileSummaryViewModel();
List<int> profileID = new List<int>() { part.ProfileId };
var summary = _profileService.GetProfileSummaryList(profileID).Where(e => e.ProfileID == part.ProfileId).First();
profileSummaryViewModel.JobTitle = summary.JobTitle;
profileSummaryViewModel.Name = summary.Name;
profileSummaryViewModel.ProfileImage = summary.ProfileImage;
profileSummaryViewModel.ProfileID = summary.ProfileID;
return shapeHelper.Parts_McrfProfile_Summary(ProfileRecord: profileSummaryViewModel);
}));
}
Наконец, если вы все сделали правильно, это и получают достоверные данные от вашей службы (или любыми средствами, вы получаете данные), вы должны быть в состоянии использовать свой вид следующим образом:
@{
Mcrf.Profiles.ViewModels.McrfProfileDetailViewModel part = Model.ProfileDetail;
Style.Include("profile-styles.css?v=1.0").AtHead();
Style.Include("bootstrap.css?v=1.0").AtHead();
}
@if (Model != null && part.ProfileDetail != null)
{
<div>
<div >
<div class="profileImgDiv">
@if (Model != null && part != null)
{
if (part.ProfileDetail.ProfileImage == null)
{
<img class="profile-img" src="~/Modules/Mcrf.Profiles/Content/Images/noProfilePictureImage.jpg" />
}
else
{
<img class="profile-img" src="@Url.Content(part.ProfileDetail.ProfileImage)" />
}
}
</div>
и т.д., и т.д., и т.д.,
Я надеюсь, что это помогает,
Roka
Я попытался использовать альтернативы, однако все части находятся в '@ Model.Content.Items', который является массивом. Невозможно выбрать, какую часть контента отображать в точном месте. Но ваше решение кажется фантастическим, я не знал, что могу это сделать в place.info (добавление непризнанных зон) – Arijoon