2011-03-20 97 views
6

如果我有一個控制器,並且想根據我的條件邏輯返回一個視圖,那有可能嗎?我有不同類型的模型,我想插入到一個視圖取決於我的條件邏輯(如果語句)我可以這樣做嗎?我該怎麼做在控制器中返回不同的視圖

回答

16

當然,返回視圖()接受視圖名稱作爲其第一個參數。只需指定一個不同的視圖。

如果你有不同的模型進入同一個視圖,可以嘗試合併它們,創建一個容器模型(每個模型類型一個屬性,然後是一個枚舉,以便視圖知道要呈現的內容),使用dynamic視圖中的模型,或者爲每個模型創建一個視圖。

第一個和最後一個將是我的首選,但它取決於具體情況。

2

你可以做這樣的事情在你的控制器(這是尋找如果用戶autheticated爲例)

if (Request.IsAuthenticated) 
    return View("View1", new AuthenticatedViewModel(myValues1)); 
else 
    return View("View2", new AnonymousViewModel(myValues2)); 
相關問題