2009-07-31 1 views
2

バリデーションサマリーを表示する必要があるときにレイアウトの一部しかレンダリングできないと、レイアウトが大幅に簡略化されます。私のasp.net mvcビュー内から検証エラーがあるかどうかを確認する方法はありますか?

問題は、検証が行われる前にアクセスした場合にスローされるため、IsValidを使用できないことです。

ViewData.ModelState.IsValidはデフォルトではfalseなので、動作しません。

働く私が見つけた唯一のものは、これはちょっと吸う

<%if (this.ViewData.ModelState.Values.Where(x => x.Errors.Count > 0).Count() > 0) 
    {%> 

です。私はこれのより良いバージョンを探しています。それはそこにあるの?

答えて

2

何ロブは述べています。私はxValをチェックして、あなたのモデルバリデーションをjqueryバリデーションに結びつける素晴らしい方法を少し追加してみました。

+0

私はそれをチェックしますが、検証する方法は不思議ではありません。検証エラーがある場合、ビュー内からどのように伝えるのかと思います。 – Will

+0

xValはjqueryのバリデーションを行い、 'ModelState'にエラーを埋め込んで標準コントロール(例:' Html.ValidationSummary')を使うことでそれを処理します。 –

+0

しかし、私はビューで知る必要があるので、何かをレンダリングできません。私がブラウザまで待っていたら、最初は厄介な部分を描画しないことで大幅に簡略化されたレイアウトに問題があります。 – Will

2

NerdDinnerチュートリアルの妥当性検査の例はまだありますか?モデル・クラスでの検証とビジネス・ルール・ロジックの統合

http://nerddinnerbook.s3.amazonaws.com/Part3.htm

あなたがコントローラにページを送信する前に検証しようとしている場合は、jQueryを使ってそれを行うほうが良いでしょう。

jQueryプラグイン:検証
http://bassistance.de/jquery-plugins/jquery-plugin-validation/

+0

これは検証ではありません。これは、ビュー内から、検証エラーがあるかどうかを判断することです。その微妙な違い、私は知っている。私はオタクの夕食のものをチェックアウトします。私はすでにこのプラグインを使用しているので、この状況では検証プラグインが役に立たないことがわかります。 – Will

+0

私はあなたがしようとしていることを見ていると思います。本当の疑問は、ModelStateをチェックするあなたのやり方がなぜ駄目だと思いますか?それは私にとってかなりしっかりしています。 –

+0

私のターゲットは私の後ろですが、私はそこに行くために私の肘を通過しています。臭い。 – Will

関連する問題