3

ユーザービューの作成(アクション)があり、特定のフィールドタイプ、日付、メールアドレスなどのクライアント側の検証とは別に、いくつかのサーバーコントローラーアクションを呼び出して、たとえばメールアドレスとユーザー名が一意であることを確認したいと思います。

これらの ajax 関数を呼び出すには、既存の MVC 検証メカニズムに「フック」することが望ましいと考えていました。そのため、フォームの検証が発生すると、すべて ajax バリデーターが呼び出され、これが modelstate.isvalid に反映され、エラーが発生すると、デフォルトの html.validation ヘルパーに表示されます。

これが可能かどうか、または独自の検証を個別に処理する必要があるかどうかはわかりませんでしたか? 現在、いくつかのコントローラーアクションを呼び出し、追加したいくつかのスパンでユーザー名と電子メールアドレスの有効性状態を表示するいくつかの jquery 関数を作成しました。

MVC の最適なパターンは何ですか? 上記の各フィールドを個別の @Ajax.BeginForm(

4

2 に答える 2

4

Asp.Net MVC にはリモート検証が組み込まれています。

モデル内:

public class CreateUserModel 
{
    [Remote("IsNameAvailable", "Validation")]
    public override string UserName { get; set; }
}

コントローラーで:

public class ValidationController : Controller 
{
    public JsonResult IsNameAvailable(string Username) 
    {
        ... Do some checks
        return Json({some validation message here}, JsonRequestBehavior.AllowGet);
    }

}
于 2012-10-09T22:35:47.043 に答える
2

リモート検証を使用できます。この記事を読む: http://msdn.microsoft.com/en-us/library/gg508808(v=vs.98).aspx

于 2012-10-09T22:42:18.533 に答える