2016-11-04 6 views
1

私は.NetコアでAsp.Net Coreをチェックしています。足場はいくつかのテンプレートを作成しました。モデルのデフォルトの検証は十分ではないので、オブジェクトは@Html.ValidationMessage("InvoiceNr")が追加されたとき、私はそれだけでメッセージが表示され、ブラウザでなぜasp-validation-forと@ Html.ValidationMessage()が両方とも必要ですか?

ViewData.ModelState.AddModelError(nameof(Invoice.InvoiceNr), "Invoice number should be unique.");

今コントローラに送信されたとき、私はいくつかの余分な検証を追加しましたcshtmlファイル。 asp-validation-for="InvoiceNr"のみがプロパティエラーを表示していないようです。

私がこれを理解するまでには時間がかかりました。誰かがなぜこれが私には直感的ではないように見えるのですか?

ありがとうございます!

@Shyju

<div class="form-group"> 
     <label asp-for="InvoiceNr" class="col-md-2 control-label"></label> 
     <div class="col-md-10"> 
      <input asp-for="InvoiceNr" class="form-control"/> 
      <span asp-validation-for="InvoiceNr" class="text-danger" /> 
     </div> 
    </div> 

@GSerg enter image description here

+1

ビューで 'asp-validation-for'をどのように試したかを共有できますか? – Shyju

+0

[Tag Helpersの自己複製可能なHTMLタグは重大な癖ですか?](http://stackoverflow.com/questions/39486703/tag-helpers-self-closing-html-tags-is-a-bad-habit ) – GSerg

答えて

4

あなたは正しくV alidation-forタグヘルパーを使用していないので、それが機能していない理由があります。自己閉じる表記法を使用する代わりに、スパンに対して明示的な終了を使用する必要があります。

は要するに

<span asp-validation-for="InvoiceNr" class="text-danger"></span> 

<span asp-validation-for="InvoiceNr" class="text-danger" /> 

を交換し、あなたが検証エラーに一緒にタグヘルパーやHTMLヘルパーの両方を使用する必要はありません。タグヘルパーを正しく使用すると、検証エラーメッセージが表示されます。

+1

それは確かにそれです。それが私を困惑させる。足場は私の意見では非常に便利なテンプレートを作り出していないようです。非常に迅速な助けをありがとう! –

+0

@MikedeKlerk実際に足場が生成するものであれば、バグとして報告する必要があります(http://stackoverflow.com/q/3558119/11683参照)。 – GSerg

関連する問題