現在、MVC1からMVC2にプロジェクトを移行するためにここを探しています。クライアント側の検証にxValを使用しています。MVC1/xValプロジェクトをMVC2にアップグレードし、クライアント側の検証との互換性を確認します
私が理解するところでは、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);
}
MODEL1:
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" />
<% } %>
VIEW2:
<%= Html.EditorFor(f => f.Username) %>
<%= Html.ValidationMessageFor(a => a.Username)%>
これは、それがフィールドIDによって検証するのでMVC2クライアント側の検証が失敗したPOCです...
xValの参照を削除するのは適切です。私はそれがそうでなければならないと思う。あなたの2番目のシナリオについてはわかりません。 – Pradeep
MVC3は今外です:)。 –