2012-01-08 3 views
11

私のコントローラには2つのアクションメソッドがあります。私は両方を1つのビューを返すようにします。MVC3 2つのコントローラアクションが1つのビューを返すことはできますか?

理由は、プロパティがnullであるかどうかをチェックし、divを表示しないで、ユーザーがロードボタンをクリックした場合、プロパティの設定によって同じビューを返す必要があるという条件付きチェックがあるためです。モデル、次にdivが表示されます。

このロジックは少なくとも15回は必要です。このモデルを返す別々のアクションを作成したいのですが、1つのビューです。出来ますか?

+0

を使用することができ、そのビューのためのデータを提供するために使用されます私は別のビューモデルを使用して、私は同じビューを返すために別個のアクションを作成するのではなく、指定されたビューを返す方法を区別できるようにパラメータを渡すことを好む... –

答えて

17

あなたは自分のreturn文に、そのビューの名前を述べることがあります。

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

あなたはSharedViewという名前のビューを持っている場合は、そのコントローラのすべてのアクションがそれにアクセスすることができます。他のコントローラ上にあるアクション間で共有したい場合は、ビュー内の共有フォルダを使用するか、フルパスで表示名を指定することができます。

+1

これは、[View Method] (http://msdn.microsoft.c om/en-us/library/dd460310%28VS.98%29.aspx) – Roman

1
return View("viewName", data); 


最初のパラメータは、レンダリングするためにどのビューからのフレームワークを告げると第二パラメータを使用すると、同じビューを返したい場合は
第二にあなたが

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

リックは慎重に質問を読んでください。そのコントローラの動作。 1つのコントローラ内に2つの動作方法 – RollerCosta