2013-01-03 49 views
1

我有一種觀點認爲在我的asp.net MVC項目:計數項目它asp.net的MVC的視圖局部視圖

<div id="featured"> 
     <% Html.RenderPartial("../Shared/UserControls/RelatedProduct", Model.ProductDetail); %> 
</div> 

控制器:

public ActionResult ProductSpec(int id, int dep, int cat, int tab) 
{ 
    var pvc = new CMSViewModel() 
    { 
     ItemDetail = new ProductVM() 
     { 
      GetItemReference = DataContext.GetItemReferences() 
     } 
    }; 
    return View(pvc); 
} 

這是我的部分觀點:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Web.ModelView.ProductVM>" %> 
    <ul class="ui-tabs-nav"> 
    <%   
     for(int i=0; i<(Model.GetItemReference.Count());i++) { 
      //list all item from model 
     } 
    %> 
    </ul> 

問題:當部分視圖中的項目爲空時,視圖將爲空白。 我想計算視圖中的部分視圖項,所以如果它是空白的,我會用其他空圖替換它。

任何人都可以告訴我如何計算視圖中局部視圖中的項目。

回答

2

總之:在渲染它們之前檢查集合中元素的可用性是一個好主意。正確的System.Linq方法是.Any()

這裏是一個展示概念的示例:

<%  
    if(Model.GetItemReference.Any()) 
    { 
     // Render your content 
     for(int i=0; i<(Model.GetItemReference.Count());i++) { 
      //list all item from model 
     } 
    } 
    else { 
    // 
    // Render your content when NO Items 
    } 
    %> 
+0

ElYusubov,但我也想改變的東西在查看時局部視圖中的項目是空的。 – Nothing

+1

你可以在你的ViewModel中引入一個條件屬性,它可以爲你解決這個問題。或者您也可以使用js來完成此操作。 –

+0

ElYusubov,你是什麼意思'在ViewModel條件屬性? – Nothing