2012-01-08 34 views
11

我在我的控制器中有兩個操作方法。我希望兩個都返回一個視圖。MVC3兩個控制器操作可以返回一個視圖嗎?

原因是因爲我在我的視圖中進行條件檢查,檢查一個屬性是否爲null,然後不顯示div,如果用戶單擊加載按鈕,則需要通過設置屬性返回相同的視圖顯示模型,然後顯示div。

該邏輯至少需要15次,我希望創建單獨的操作來返回模型,但返回一個視圖。可能嗎?

+0

如果你想返回相同的觀點與不同的viewmodels,我更喜歡傳遞一個參數,它允許我區分如何返回給定的視圖,而不是創建單獨的操作返回相同的視圖... – 2012-01-08 21:40:17

回答

17

你只需要在你的return語句聲明,視圖名稱:

public ActionResult SomeAction() 
{ 
    // do something 
    return View("SharedView", viewModel); 
} 

如果你有一個名爲SharedView觀點,在控制器的所有動作都可以訪問它。如果要在其他控制器上的操作中共享它,可以在視圖中使用共享文件夾,或者使用視圖名稱的狀態完整路徑。

+1

這是一個msdn參考頁面,[View Method] (HTTP://msdn.microsoft.c om/en-us/library/dd460310%28VS.98%29.aspx) – Roman 2012-01-09 00:28:52

1
return View("viewName", data); 


第一個參數告訴框架,從中查看渲染和第2個參數用於爲這一觀點提供了數據
其次,你可以使用

return RedirectToAction("actionName",new{data=something}); 
+0

Rick仔細閱讀這個問題。其控制器行動。即在一個控制器中採用兩種操作方法 – RollerCosta 2012-01-10 05:10:59

相關問題