1

コントローラー、、、FooおよびBarBaz場合、次のようなフォルダー構造があります。

Views
    Foo
        Index.csthml
    Bar
        Index.csthml
    Baz
        Index.csthml
        _Rarity.cshtml

それは本当にこのようでなければなりませんか?それらのほとんどはと呼ばれるため、編集する適切なファイルを決定するのは少し面倒ですIndex.cshtml。理想的には、もう少しこのようなものが欲しいです:

Views
    Foo.csthml
    Bar.csthml
    Baz.csthml
    Baz
        _Rarity.cshtml

View()Controllerクラスのメソッドに完全修飾パスを渡すことができることを認識しています。つまり、FooControllerIndex()メソッド内で、を呼び出すことができますthis.View("~/Views/Foo.cshtml")。これは私が得ることができる最高のものですか?

4

2 に答える 2

0

これは、デフォルトのRazorビューエンジンの性質の範囲外です。上記のように最初のセットアップを使用するのは従来のアプローチです。ただし、Razorビューエンジンと、ビューを検索するために必要なフォルダーをカスタマイズすることで、独自の規則を作成できます。ただし、デザインで発生する可能性のある問題は、ファイル名の競合です。たとえば、Foo.cshtmlがFooコントローラーのインデックスアクションにマップされる場合を作成できますが、それは、Fooコントローラーの別のアクションメソッドを特別な規則なしにビューに簡単にマップできないことを意味します。

結論:はい、カスタマイズしますが、複雑さとエッジケースに注意してください。

于 2012-11-19T18:32:03.520 に答える
0

RouteMap()を使用して、各コントローラーのデフォルトのアクションを変更して、すべてがIndexを使用するのではなく、.cshtmlファイルを呼び出すことができる場合があります。それでも、車輪の再発明をしなくても魔法を活用できるはずです。

お役に立てれば...

于 2019-02-08T20:58:59.970 に答える