2011-12-17 3 views
1

モデルで動作するようには思えませんそれが機能していることを確認するだけです。ただし、リストからタグを選択せず​​にフォームを送信した場合は、最初にタグを選択する必要があることを示すエラーは発生しません。カスタムバリデータは、すべての

私はここで間違っていますか?

+0

を使用すると、クライアント側の検証やサーバー側の検証をしたいですか? – dotnetstep

+0

'はノービーであるために私を騙しますが、私は両方が欲しいと思います。私が理解していることから、ASP.NET MVC 3でデータアノテーションを使用する利点は、両方を取得することです。 –

+0

さて、私はあなたのことを今見ています。私は私のコントローラで 'if(ModelState.IsValid == false)'チェックをコメントアウトしていたので、サーバー側の検証は行っていませんでした。私はまだクライアント側の検証を取得する方法をまだよく分かりません。 –

答えて

1

私は私のコントローラであれば(ModelState.IsValid == false)のチェックをコメントアウトしていたので、私は任意の検証を取得していませんでした。ビューのListBoxフィールドがIEnumerableでありListではないため、モデルをビューに戻そうとしたときにエラーが発生したためです。

は、ここで私は両方の問題(コントローラ内の)固定方法は次のとおりです。

[HttpPost] 
public ActionResult AddItem(AddItem AddItem) 
{ 
    if (ModelState.IsValid == false) 
    { 
     ModelState.AddModelError("", "Model not valid."); 

     List<Tag> Tags = Db.Tags.ToList(); 

     ViewBag.Tags = new SelectList(Tags, "TagId", "Name"); 

     return View(AddItem); 
    } 

    //... 
} 
0

クライアントサイドのカスタム検証を行うには、JQueryで実装する必要があります。ASP.net MVC 3の妥協のない検証を使用していると仮定しています。

http://thepursuitofalife.com/asp-net-mvc-3-unobtrusive-javascript-validation-with-custom-validators/

+0

これを指摘してくれてありがとう、@ dotnetstep。しかし、スイングを取った後、私はサーバー側の検証でうまくいくと思います。 Yikes。 –

関連する問題