【发布时间】:2011-07-29 06:58:06
【问题描述】:
我已经阅读了很多关于如何在 mvc 3.0 中验证动态生成的内容,例如 xhalent 所写的 , 但我不明白如何在我的代码中使用它。我的意思是它不适用于动态生成的表单元素。 这是我的模型类:
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 asp.net-mvc-3 client-side