現在、プロジェクトを MVC1 から MVC2 に移行するためにここを探しています。クライアント側の検証には xVal を使用しています。
私が理解していることから、xValへの参照を削除してMVC2 EnableClientSideValidationに置き換えるだけで、うまくいくはずです。他に何か必要ですか?
また、xVal ではクライアント側でモデルのリストを検証できませんでしたが、MVC2 + ClientSideValidation にも当てはまりますか? (「モデルのリスト」で意味するのは、で検証を行うことですList<TypeOfModel>
)
これの例は次のとおりです: コントローラ:
public ActionResult Index()
{
Models.Model1 model = new Models.Model1();
model.Usernames = new List<Models.Model2>();
model.Usernames.Add(new Models.Model2 { });
model.Usernames.Add(new Models.Model2 { });
model.Usernames.Add(new Models.Model2 { });
model.Usernames.Add(new Models.Model2 { });
return View(model);
}
モデル1:
class Model1 {
public List<Model2> Usernames { get; set; }
}
モデル 2:
class Model2 {
[Required]
public string Username { get; set; }
}
意見:
<% Html.EnableClientValidation(); %>
<% using (Html.BeginForm()) { %>
<% foreach (var username in Model.Usernames) { %>
<% Html.RenderPartial("View2", username); %>
<br /><br />
<% } %>
<input type="submit" />
<% } %>
ビュー 2:
<%= Html.EditorFor(f => f.Username) %>
<%= Html.ValidationMessageFor(a => a.Username)%>
これは、フィールド ID で検証するため、MVC2 クライアント側の検証が失敗する POC です...