xhalentが と書かれているなど、mvc 3.0で動的に生成されたコンテンツの検証方法についてたくさん読んだことがありますが、つまり、動的に生成されるフォーム要素では機能しません。これでフォームが表示され始めるあるクライアント側でmvc 3.0で動的に生成されたフォーム要素を検証する
public class Person
{
[Required]
public string Name { get; set; }
[Required]
public string Phone { get; set; }
public IList<Address> Addresses{get;set;}
public Person()
{
Addresses = new List<Address>()
{
new Address(){Street="1"},new Address(){Street="2"}
};
}
}
public class Address
{
[Required(ErrorMessage="Error")]
public string Street { get; set; }
}
そして、このビュー:
<script src="<%: Url.Content("~/Scripts/jquery-1.5.1.min.js") %>" type="text/javascript"></script>
<script src="<%: Url.Content("~/Scripts/jquery.validate.min.js") %>" type="text/javascript"></script>
<script src="<%: Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js") %>"
type="text/javascript"></script>
<% using (Html.BeginForm())
{ %>
<%: Html.ValidationSummary(true) %>
<fieldset>
<legend>Person</legend>
<%: Html.EditorForModel() %>
<div class="phone-numbers">
<%
foreach (var item in Model.Addresses)
{
%>
<%Html.RenderPartial("EditorTemplates/Addresses", item);%>
<%} %>
</div>
<div style="padding: 10px 0px 10px 0px">
<a id="add-phone" href="javascript:void(0);">Add another</a>
</div>
<input type="submit" value="Create" />
</fieldset>
<% } %>
</div>
$().ready(function() {
$("#add-phone").click(function() {
$.ajax({
url: '<%: Url.Action("GetNewAddress") %>',
success: function (data) {
$(".phone-numbers").append(data);
}
});
});
});
そして、これは、アドレスの部分図である。 はここに私のモデルクラスです
<div style="padding: 5px 0px 5px 0px" name="editorRow" id="editorRow">
<%: Html.LabelFor(m => m.Street) %>
<%: Html.EditorFor(m => m.Street)%>
<%:Html.ValidationMessageFor(m=>m.Street) %>
</div>
ありがとうございました。しかし、それはうまくいきませんでした。私はプロジェクト全体をアップロードしました。本当にありがとうございます。私はJqueryの初心者です。これは[リンク](http://ifile.it/317tufm/Improved.zip) –
最初私は方法を使用したジョー[リンク](http://www.joe-stevens.com/2011/07/24/asp -net-mvc-2-client-side-validation-for-dynamic-fields-added-with-ajax /)を使用して、入力コントロールのIDを生成します。しかし、私はそれがあなたが説明した方法と矛盾していると思った。 –
これはasp.net mvcです。2. asp.net mvc 3(正しく)を使用しています。 mvc 3はmvc 2から完全に変更された検証を持っているので、mvcのデフォルトの目立たない検証ではリンクが機能しません3 – archil