2012-03-26 27 views
2

什麼是最好的方法來調用動作方法在控制器A中的方法,從動作方法在控制器B中的方法? 是否真的有這樣的調用?從另一個控制器調用操作方法的最佳方式是什麼?

+0

事實上,我有兩個相關的對象,如A和B.每個人都有它獨立的控制器。在控制器A的動作中,我也想在控制器B中調用一個動作。 – 2012-03-26 07:54:01

回答

3

最好的方法是致電return RedirectToAction()

但是,正確的做法是將相關代碼從您的控制器/操作移動到外部地點,服務或業務邏輯層。這是錯誤的,他們居住在你的控制器,這不是地方,它現在讓你頭痛如何跳轉到另一個控制器,然後回來。這只是錯誤的。與其找到解決問題的方法,只需修復您的架構。

+0

感謝您的幫助。但是我想在另一個控制器中使用來自另一個控制器的動作。通過RedirectToAction,我必須使用Return Keyword。有另一種方法嗎? – 2012-04-03 06:47:13

+0

所以不要回來;將方法結果放入一個變量並使用它。例如:'var b = new ControllerB(); var action = b.DoAction();' – 2012-04-03 11:56:43

+1

真的,我使用過這個,在使用RedirectToAction之前。我聲明瞭ControllerB的新實例,然後調用我需要的操作。這是調用另一個Controller的ActionMethod的最佳方式,正如我最初問的那樣? – 2012-04-03 14:56:48

相關問題