1

私の問題は、MVC4プロジェクトがあり、部分的なビューを使用していくつかのビューに追加したいいくつかのコンポーネントを作成したいということです。MVCプロジェクトで作成するフォルダーロジックの図を示します。

ここに画像の説明を入力してください

この部分ビューにアクセスしようとすると、アプリケーションからメインのViewsフォルダーで最初に検索されるため、この部分ビューを追加するにはどうすればよいですか?アプリケーションへのカスタムルートを作成する方法はありますか?

@{ Html.RenderPartial("Components\\Chart\\View\\Index.cshtml");  }

これにより、次のようなエラーが発生します。

部分ビュー'Conmponents\ Chart \ View \ Index.cshtml'が見つからなかったか、検索された場所をサポートするビューエンジンがありません。次の場所が検索されました:〜/ Views / Home / Conmponents \ Chart \ View \ Index.cshtml.aspx〜/ Views / Home / Conmponents \ Chart \ View \ Index.cshtml.ascx〜/ Views / Shared / Conmponents \ Chart \ View \ Index.cshtml.aspx〜/ Views / Shared / Conmponents \ Chart \ View \ Index.cshtml.ascx〜/ Views / Home / Conmponents \ Chart \ View \ Index.cshtml.cshtml〜/ Views / Home / Conmponents \ Chart \ View \ Index.cshtml.vbhtml〜/ Views / Shared / Conmponents \ Chart \ View \ Index.cshtml.cshtml〜/ Views / Shared / Conmponents \ Chart \ View \ Index.cshtml.vbhtml

4

1 に答える 1

1

~プロジェクトディレクトリとしてを使用してパスを指定できます。

Html.RenderPartial("~/Components/Chart/View/Index.cshtml",model)

また、この問題はルーティングとは何の関係もありません。ルーティングとは、着信リクエストをアクションメソッドにマッピングすることです。ASP.NET MVCは、コントローラー名とアクション名を使用してビューを見つけようとします。そこにない場合は、共有フォルダもチェックします。上記の例のように、正確なパスを指定することで、この動作をオーバーライドできます。

アップデート:

また、Viewフォルダにいくつかの設定を行う必要があります。Web.configをデフォルトのViewsフォルダー内にコピーするか、すべてのビュー構成をプロジェクトのWeb.configファイルに移動することでうまくいくはずです。

于 2012-11-03T14:23:04.067 に答える