2017-09-15 14 views
0

.NET MVCでは、コントローラのRouteNameという名前の命名規則に常に従っていますが、これは 'RouteName.cshtml'というビューです。.Net MVCコントローラビューと同じcshtmlを使用する別のルート名

私の質問は、別のRouteNameで同じcshtmlファイルを使用するにはどうすればいいですか?

+0

可能な複製を[試すことができますが、2つのアクションメソッドを持っており、それらの両方がAbout.cshtml

ので

使用しているAbout.cshtml という名前のビューを持っています特定のView(コントローラ名ではなく)でActionResultを返す](https://stackoverflow.com/questions/26359192/how-to-return-actionresult-with-specific-view-not-the-controller-name) – mjwills

答えて

1

デフォルトのビュー()メソッドのデフォルトのアクション名と一致するが、あなたは、次の例のように、ご希望のCSHTMLにそのパスを指定するには、ビュー(String)メソッドを使用することができます。

// in action method that is *not* RouteName 
return View("RouteName"); 
+0

ありがとうございました。現在、私は 'View(myViewModel)'を返すので、APIを見つけることができますので、ルート名とモデルをビューに指定することができます。 – n179911

+0

https://msdn.microsoft.com/en-us/library/system.web.mvc.controller.view(v=vs.118).aspx#M:System.Web.Mvc.Controllerのドキュメントを参照してください。 .View あなたが探しているのは、文字列引数があなたのモデルであるビュー名とオブジェクト引数である(string、object)の引数リストを取るオーバーロードのように聞こえる。 –

0

あなたはpartialsでCSHTMLのチャンクを再利用できます。あなたが解決しようとしている問題に応じて、これはよりよい解決策かもしれません。

質問を編集してコンテキストを追加できますか?複数のActionResultメソッドから同じcshtmlをレンダリングする必要があるのはなぜですか?あなたは何を達成しようとしていますか?

0

たとえば、あなたがどのようにの

public ActionResult Index() 
     { 
     var model = "view model"; 
     // Pass view model as the second parameter 
     return View("About", model); 
     } 

public ActionResult About() 
     { 
      ViewBag.Message = "Your application description page."; 
      // Not need pass view name because view name and action method name are same (About 
      return View(); 
     } 
関連する問題