1

理由が何であれ、私は自分のフィールド検証ヘルパーを書き始めています。検証メッセージを表示するだけでなく、検証中のテキストボックスの値を制御したい。

カスタム拡張コードから検証中の html コントロールにアクセスする方法はありますか?

これが非常に基本的な始まりです:(コードを判断しないでください。質問のために単純化しました)

public static MvcHtmlString CustomValidatioMessageFor<TModel, 
        TProperty>(this HtmlHelper obj, Expression<Func<TModel,TProperty>> 
        expression){
    string html = (string)obj.ValidationMessageFor(expression);
    html = "<div>" + /* Here goes the error message blabla... */ + "</div>";
    return new MvcHtmlString(html);
}
4

2 に答える 2

0

検証中のテキストボックスの値を制御したい

検証ヘルパーは、入力されたデータを検証するように設計されていますが、入力中にデータを制約する必要があります。これは、検証ヘルパーを使用してそれを達成できないことを意味します。キーボード/マウスイベントへのフックに基づく、より熱心なアプローチが必要です。また、サーバー側にはテキスト ボックスがないため、完全に JavaScript ベースになります。あなたはモデルを投稿しただけです。

于 2013-08-15T10:15:57.963 に答える
0

ASP.net MVC フレームワークは、jquery-validationを使用して、エラーがサーバーに返される前にクライアント側で検証を実行します。検証ヘルパーのコードがヒットした場合、データは既にクライアントから送信されており、サーバーができる唯一のことは、データの処理を受け入れるか拒否することです。

フィールドに対して独自のハンドラーを記述し、さまざまなルールを定義できます。フォーム フィールドでアクションを実行するさまざまな方法の複数の例については、 jquery 検証デモのソースを参照してください。

于 2013-08-15T12:49:58.687 に答える