0

我想調用一個控制器的多個部分視圖。我有一個旋轉木馬,將有至少3個幻燈片,將由CMS管理。我希望能夠爲每個幻燈片做一個局部視圖,並用數組將它們全部調用到家庭控制器中。我知道我的視圖需要foreach循環,但是我需要爲每個部分視圖分別創建一個模型還是需要一個模型?我確實看過這個問題和答案,但我認爲它與我正在尋找的有點不同(ASP.NET MVC - How to pass an Array to the view?)我已經包含了部分視圖。視圖,模型和控制器代碼。我很抱歉代碼太亂了。任何幫助,將不勝感激。謝謝。調用多個部分視圖到一個控制器的CMS系統

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." /> 
} 

 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); 
    } 
} 

}

回答

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> taghelper代替img標籤來利用內容豐富的圖像API。你可以然後通過這樣的替換你的部分觀點:

<div class="item"> <contentful-image url="@image.EventImages.File.Url" width="850" height="700" alt="Your browser does not support the image tag." /> </div> 只需添加@addTagHelper *, Contentful.AspNetCore_ViewImports文件。

您可以閱讀更多關於contentful-image taghelper的信息以及此處可以使用的其他選項:https://www.contentful.com/developers/docs/net/tutorials/aspnet-core/

相關問題