2012-05-15 73 views
2

我有一個控制器和它的一個方法(動作)訪問我的項目數據庫。該方法檢查項目類型。只有當從我的數據庫中檢索到的項目是特定類型的時,我該如何顯示我的局部視圖?如何在ASP.NET MVC3中的控制器中返回一個局部視圖?

控制器的操作實例:

public ActionResult CheckItem(Koko model) 
{ 
    var item = db.Items.Where(item => item.Number == model.Number).First(); 
    if(item.Type=="EXPENSIVE") 
    { 
     //show partial view (enable my partial view in one of my Views) 
    } 
} 

回答

8

你可以返回PartialView作用的結果:

public ActionResult CheckItem(Koko model) 
{ 
    var item = db.Items.Where(item => item.Number == model.Number).First(); 
    if (item.Type=="EXPENSIVE") 
    { 
     return PartialView("name of the partial", someViewModel); 
    } 

    ... 
} 

現在控制器動作將返回部分HTML。這顯然意味着您可能需要使用AJAX才能調用此控制器操作,否則您將獲得局部視圖替換當前瀏覽器窗口。在AJAX成功回調中,您可以重新注入DOM中的部分HTML以查看更新。

+0

ahaha ...我想我在做什麼是錯的...其實,我的部分視圖只包含按鈕...如果該項目是一個特定的類型,它將只顯示瀏覽器中的其他按鈕....作爲回報PartialView(「部分的名稱」,someViewModel);什麼是someViewModel,我的局部視圖只包含按鈕... –

+0

如果你不需要有一個模型,你可以省略這個參數。它基本上代表了你可以傳遞給局部視圖的模型。 –

+1

我認爲這不是你應該在你的控制器中做的事情。它僅與UI相關,因此應該在View中處理。只需檢查您的視圖模型是否具有某種類型(您的財產)並相應地添加按鈕。 Darin的這個回答顯示了你所問的,但不是你想要的(這是由於你的問題描述不佳)。 – Styxxy

相關問題