2017-06-13 11 views
-1

のモデルを取得します。コール別のコントローラと私は<strong>にHomeController</strong>に<strong>KitchenControllerの</strong>モデルを得ることができますどのように、<strong>にHomeController</strong>から<strong>KitchenController</strong>を呼び出していますと呼ばれるコントローラ

 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(ViewResult、JsonResult ...の形式を派生するいくつかのクラス)を返すか、またはデータを直接応答に返します。だから電話することができる場合でも

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

    期待どおりの結果を得ることはできません。 Modelは、ビューをレンダリングするために使用されるコントローラーアクション内の専用変数です。JSONにシリアライズされます。

あなたは、この両方の方法で使用される別のサービス/プロバイダ/ファクトリクラスにこのロジックを抽出する必要がありIndex アクションとKichenDetails方法のためのモデルを作成するために使用される共有ロジックを持っている場合。このクラスは

関連する問題

 関連する問題