2017-09-01 8 views
-1

私のASP.NET Core 1.1.1アプリでは、model validationは機能しません。私は、デフォルトのviewsの一部(例えば、login.cshtml,Register.cshtmlのうち、アプリケーションの作成時にVS2017によって作成されたもの)の最後に次のコードがあることに気付きました。しかし、これらのデフォルトビューは実際に部分的なビューです。私のビューは部分的なビューではありません。私のviewsの最後に次のものを追加する必要がありますか?それとも何べき私は部分的見解ではありません、私の意見の最後に追加さ:データ検証のために、Html.RenderPartialAsync( "_ ValidationScriptsPartial")をどこに追加しますか?

@section Scripts { 
    @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); } 
} 
+0

「動作していない」と言ったら、どういう意味ですか?クライアント(javascript)では「機能しない」、サーバー上では機能しない(多くのことがあります)ことができます。正確には何が起きているのですか? – dime2lo

+0

@ dime2loクライアントサイドでは動作しません。詳細は私のこの[投稿](https://stackoverflow.com/q/46008588/1232087)にあります。 – nam

答えて

0

まあ、

@section Scripts { 
    @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); } 
} 

する「クライアント側の検証」(ジャバスクリプト)のために使用されています。フォームが有効でない場合(Model Validationに従って)、ユーザーがフォームを送信することはできません。

あなた/Views/Shared/_Layout.cshtml you'llを開くと、それの下部に以下のコードを参照してください。@section Scriptsからのコンテンツはで、注入される場所

@RenderSection("Scripts", required: false) 

このコードブロックがありますこれらの場合、部分図_ValidationScriptsPartialの内容。

required: falseとして、ビューにクライアントの検証が必要ない場合は、@section Scriptsコードを追加する必要はありません。

Partialについては_ValidationScriptsPartialビュー名はビュー自体が部分的であることを意味し、直接配信するつもりはありません。それは「部分的な見解で使用する」と混同してはいけません。

さらに詳しい情報:

https://docs.microsoft.com/en-us/aspnet/core/mvc/views/layout#sections

Injecting content into specific sections from a partial view ASP.NET MVC 3 with Razor View Engine

よろしく。

+0

あなたは私の質問に答えましたが、 '@section Script { @ {Hime.RenderPartialAsync(" _ ValidationScriptsPartial "); } } 'は、クライアント側の検証が必要なビューに追加することができます。なぜなら、上記のコードで' partial'という単語は、上記のコードが部分的なビューのみを対象としていると考えるからです。しかし、私はポストに正しく載せていないと思う。他の読者の利益のために、私の混乱に関してあなたの '返信 'に1つのライナーを追加したいかもしれません。そして、私はそれを「答え」としてマークします。 – nam

+1

答えを編集したので、他の人はビューの名前の "Partial"について混同しないでください。 (追加:_ValidationScriptsPartialビュー名の部分的な意味は、ビュー自体が部分的であることを意味し、直接提供されることは意図していません。「部分的なビューで使用する」と混同してはいけません)。 – dime2lo

関連する問題