0

厳密に型指定されたビューモデルで動作するxVal 検証を取得できません。

xVal のすべてのメソッドは、厳密に型指定されたビューモデルを処理するときに使用されないプレフィックスが必要なようです。

私のビューには、次のようなコードが含まれています。

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<ContactForm>" %>
<%= Html.TextBox("firstName", Model.FirstName) %>

そして、次のコードがコントローラーに入ります。

try
{
    var theModel = form.ToModel();
    _contactRepository.Save(theModel);
}
catch (RulesException ex)
{
    ex.AddModelStateErrors(ModelState, string.Empty); // Passing string.Empty for prefix, since I don't use prefixes.
}

return View(form);

ただし、上記のコードは機能しません。私は確かに何かを逃しましたが、何がわかりません。xVal を使用するのはこれが初めてです。

助けてくれてありがとう!

4

3 に答える 3

0

あなたの投稿は、何が問題なのかを理解するのに十分なほど簡潔ではありませんが、このブログ記事の最後に、完全に機能するデモ Web サイトを見つけることができます。この記事では、実行する必要があるすべての手順についても説明しているため、xVal を実行するのに役立ちます。

于 2009-11-17T15:23:13.477 に答える
0

Adrian の指摘によると、ビュー モデルで DataAnnotations を使用しているかどうか、またはこの記事で説明されている何らかの種類のランナーを使用しているかどうかはわかりません。使用する検証属性 (Required、Range など) で指定されたビュー モデルの各プロパティに対して検証を実行するには、言及されている DataAnnotationsValidationRunner のようなものを使用する必要があります。

基本的に手順は次のようになります。

  1. 更新された厳密に型指定されたビュー モデルをフォームから取得します。
  2. そのモデルを に渡し、DataAnnotationsValidationRunner結果として生じるエラーを収集します
  3. エラー (ErrorInfo オブジェクト) があった場合は、それらをRulesException
  4. 例外のメソッドRulesExceptionを使用して、検証例外をキャッチしてモデルに追加しますAddModelStateErrors
  5. であるかどうかを確認しModelState.IsValid、そうでない場合はビューを表します。例外処理のおかげで、ビューモデルにエラーがバインドされます。ValidationMessageリンクされた記事でも参照されている、適切な html ヘルパー呼び出しが配置されていることを確認する必要があります。
于 2010-04-02T16:24:24.020 に答える
0

問題は、プレフィックスを使用していないという事実にあると思います。ModelState をデバッグすると、".FirstName" のようなものの検証を確認できますが、"FirstName" のようにする必要があります。そのため、クライアント側の検証の概要などには、これらの検証エラー メッセージが表示されません。

これは xVal のバグだと思います。

于 2010-09-01T12:15:00.527 に答える