これは非常に基本的なシナリオのように思えますが、ハッピーエンドではないと思います。
私は単純なプロジェクトクラスを持っています:
public class Project
{
[Required(ErrorMessage = "Project title is required")]
[DisplayName("Project Title")]
public string Title { get; set; }
[DisplayName("Related Categories")]
public Category Categories { get; set; }
}
関連するカテゴリが少なくとも 1 つ選択されていることを確認します。Html.EnableClientValidation() とモデルのデコレータを使用して、ビューでこれを検証するにはどうすればよいですか? これが不可能な場合、フォールバックは何ですか?
同様に苛立たしく、おそらく検証の障害は、私ができないことです...
<%= Html.ListBoxFor(m => m.Project.Categories,
new SelectList(Model.Categories, "Id", "Name"))%>
...これは、Project.Categories フォームの値 (文字列配列) をカテゴリ型であるべきものに関連付けようとするためですが、できません (エラー「型 'System.String からのパラメーター変換' 型コンバーターがこれらの型間で変換できないため、型への変換に失敗しました")。したがって、フォーム名を m.Categories のような名前に変更して、Product クラスとの関連付けを解除する必要があります。
うわー、私にはこれはクレイジーです。MVC2 デコレータを使用して、単純な複数選択リストを検証できませんか?