2017-06-13 38 views
-1

的模型我打電話KitchenController的HomeController,我怎麼能得到KitchenController的模型的HomeController調用另一個控制器,並得到所謂的控制器

 public void KichenDetails(string KichenId) 
     { 
      if (string.IsNullOrEmpty(KichenId)) 
       KichenId = ""; 
      var result = new KitchenController().Index(KichenId); 
      result.Model.;// result contains model and other details as well 
     } 
+0

我想你會從這裏得到幫助[鏈接](https://stackoverflow.com/questions/16870413/how-to-call-another-controller-action-from-a-controller-in- mvc) –

+0

** [類似這樣](https://stackoverflow.com/questions/15385442/passing-data-between-different-controller-action-methods)** –

回答

2
  1. 這是糟糕的系統設計的標誌,你不應該自己創建控制器。控制器應該由控制器工廠創建,作爲請求處理流程的一部分。除此之外,在大多數應用程序控制器中,與一些服務/外部依賴進行交互,這些服務/外部依賴應該使用依賴注入來解決。

  2. 控制器操作主要返回ActionResult s(或派生它的一些類 - ViewResult,JsonResult ...)或直接將數據刷新到響應中。所以,即使能夠打電話

    var result = new KitchenController().Index(KichenId); 
    

    你不會得到你所期望的結果。模型,是控制器操作中的一個私有變量,用於呈現視圖或將其序列化爲JSON。

如果具有被用於創建Index 動作和KichenDetails方法的模型,你應該提取此邏輯到一個單獨的服務/供應商/工廠類,這將在這兩種方法中使用的共享邏輯。這個類可以

相關問題