5

TemplateController:

これは機能します:

 return PartialView("_Create");

しかし、これは機能しません:

return PartialView();

asp.net mvc規則では、実際には、コントローラーの名前=> "Template"のビューフォルダーをチェックし、アクション=>"Create"と同じ名前のビューをチェックする必要があります。

これは、View()を返す場合に有効です。リターンPartialView()がアンダースコアだけを考慮しないのはなぜですか?

4

3 に答える 3

3

部分ビューをアンダースコアで開始するのは命名規則にすぎません。しかし不思議なことに、/mvc エンジンはアンダースコアのある部分ビューを検索しません。

  1. だからあなたは明示的に言わなければなりませんreturn PartialView("_Create")
    また
  2. コードに文字列が含まれないように、命名規則を破ります。
于 2013-03-26T19:31:40.050 に答える
0

ウェブ全体でこれを読んだ後、なぜ _ が必要なのか、そもそもそこにある必要があるのか​​ について、意見が非常に分かれています.

これは asp.net mvc の命名規則ではないと主張します。その証拠は、フレームワーク自体がこれに準拠していないことです。(あなたの質問で指摘したように)

_ の起源は webmatrix/asp.net に由来します。_ は、ユーザーに直接提供できないリソースに使用されます。

接頭辞を付けることができるのは、_layout などの再利用可能なコンポーネントであるビューと、おそらく _nav または _datepicker だけです。

いずれにせよ、Razor は部分ビューの概念を削除しました ( .aspx.ascxの間には違いがないため、とにかくすべて.cshtmlです)。

于 2016-04-20T12:24:45.310 に答える