1

MVCヘルパーを使用せずに、htmlフィールドを目立たないように検証する方法について、誰かが良いチュートリアルを提供してくれませんか。それはまったく可能ですか?

プレーンな html を保持し、input type="text"mvc ヘルパーの代わりにフィールドを使用したいの<%= Html.TextBox("Name") %>ですが、モデルの検証を引き続き使用します。

public class Employee
{
    [Required]
    public string Name { get; set; }
}

jquery Ajaxでも可能ですか?

ありがとう

4

1 に答える 1

1

ヘルパーを使用せずに MVC で目立たない検証を実行することは可能ですが、開発者が mvc ヘルパーを使用せずに手動で検証を行うのは非常に困難です。厳密に言えば、パフォーマンスが低下し、コードが読めなくなります。

基本的に、目立たない検証は 2 つの部分で構成されます。モデル フィールドと MVC ヘルパーへのデータ属性を介して必要なマークアップを生成するサーバー側と、これらのマークアップを意味のある部分に解析するクライアント側ライブラリjquery.validate.unobtrusive.jsです。 jquery 検証プラグイン。

したがって、一般に、必要なマークアップを手動で記述できます。検証 js ライブラリが読み込まれる限り、検証は機能します。たとえば、検証の対象となるフィールドは、data-val='true' 属性でマークする必要があります。フィールドを必須にしたい場合は、data-val-required="error message" のように追加で記述する必要があります。長さの検証 - data-val-length-min="5" (明らかに最小) data-val-length-max="50" (最大長)、data-val-length="Min 5 max 50 chars required" .

一方、通常の mvc アプローチを使用する場合、モデル属性の問題にすぎません。

[Required]
[StringLength(50, MinimumLength = 5)]
public string Name { get; set; }

およびマークアップ内の 1 行のコード:

@Html.TextBoxFor(o=>o.Name)

素晴らしく、光沢があり、ビューとモデルを分離し、KISS を支援します。

そして、あなたの質問の2番目の部分について。私が問題を正しく理解していれば、動的フォームを検証する必要があります。おそらく答えになるでしょう: jquery.validate.unobtrusiveが動的に注入された要素で機能しない

于 2013-07-25T23:48:20.077 に答える