0

여러 부분 뷰를 하나의 컨트롤러로 호출하려고합니다. CMS에 의해 관리되는 슬라이드가 3 개 이상인 회전식 컨베이어가 있습니다. 각 슬라이드에 대해 부분 뷰를 수행하고 배열을 사용하여 홈 컨트롤러로 모두 호출 할 수 있기를 원합니다. 내 관점은 foreach 루프가 필요할 것임을 알고 있지만 부분 뷰 각각에 대해 별도의 모델이 필요하거나 모델 작업이 필요합니까? 나는이 질문과 대답을 보았으나 내가 찾고있는 것과는 조금 다르다고 생각한다. (ASP.NET MVC - How to pass an Array to the view?) 부분보기를 먼저 포함시켰다. 보기, 모델 및 컨트롤러 코드. 나는 코드가 혼란 스러울 때를 미리 사과한다. 어떤 도움을 주시면 감사하겠습니다. 고맙습니다. CMS 시스템의 여러 컨트롤러를 하나의 컨트롤러로 호출

 View--<!-- Wrapper for slides --> 
    <div class="carousel-inner"> 
     <div class="item active"> 
     </div> 
     <div class="item"> 
     @Html.Partial("~/Views/Shared/_CorporateEvents.cshtml"); 
     </div> 




    Model---namespace MyLink.Models 
    { 
public class CorporateEvents 
{ 
    [JsonProperty("eventImages")] 
    public Asset EventImages { get; set; } 
} 
    } 





    Controller ----public async Task<IActionResult> Index() 
    { 

     var qb = QueryBuilder<CorporateEvents>.New.ContentTypeIs("corporateEvents"); 
     var entries = await _client.GetEntriesAsync(qb); 


      return View(entries); 
    } 
} 

Partial View - @{ 
ViewData["Title"] = "_CorporateEvents"; 
} 

<div> 
@foreach (var image in Model) 
{ 
    <img width="850" height="700"> 
    <img source src="@image.EventImages.File.Url" type="image" 
     alt="Your browser does not support the image tag." /> 
} 
}

답변

0

그래서 짧은에, 아니 당신은 부분보기위한 별도의 모델이 필요하지 않습니다. 당신은 단순히이 같은 각 부분에 모델을 전달할 수 있습니다

@Html.Partial("~/Views/Shared/_CorporateEvents.cshtml", modelGoesHere);

그러나, 몇 가지 귀하의 예제에서 이상한 나를 친다.

컨트롤러는 내용이 풍부한 항목을 여러 개 가지고 있으며 각 항목은 정확히 Asset을 포함합니다. 이것들이 컨베이어에있는 당신 물건입니까?

그래서 나는 다음과 같습니다 뷰 생성 할 경우

<div class="carousel-inner"> @foreach(var slide in Model) { @Html.Partial("~/Views/Shared/_CorporateEvents.cshtml", slide); } </div>

과 같은 부분보기 뭔가를 :

<div class="item"> <img source src="@image.EventImages.File.Url" type="image" alt="Your browser does not support the image tag." /> </div>

나는 또한 <contentful-image>을 사용하는 것이 좋습니다 것 만족스러운 이미지 API를 활용하려면 img 태그 대신 taghelper를 사용하십시오. 그런 다음이 같은 것을하여 부분 뷰를 대체 할 수 :

<div class="item"> <contentful-image url="@image.EventImages.File.Url" width="850" height="700" alt="Your browser does not support the image tag." /> </div> 그냥 _ViewImports 파일에 @addTagHelper *, Contentful.AspNetCore을 추가 할 수 있습니다.

콘텐츠가 풍부한 이미지 태그 헬퍼와 다른 옵션은 다음에서 확인할 수 있습니다. https://www.contentful.com/developers/docs/net/tutorials/aspnet-core/