我想创建一个允许我为一个人添加电话号码的视图。
public class PersonModel
{
public string Name { get; set; }
}
public class PhoneModel
{
public string PhoneNumber { get; set; }
}
public class PersonDetailViewModel
{
public PersonModel PersonDetails { get; set; }
public IList<PhoneModel> PhoneNumbers { get; set; }
}
我将主视图绑定到viewmodel,如
@model DynamicPhoneNumber.Models.PersonDetailViewModel
@{
ViewBag.Title = "Add";
}
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Details</legend>Name @Html.TextBoxFor(a => a.PersonDetails.Name)
<input type="button" id="btnAdd" value="Press Me" />
<div id="mydiv">
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
我的部分视图看起来像
@model DynamicPhoneNumber.Models.PhoneModel
<p>
@Html.TextBoxFor(t => t.PhoneNumber)
</p>
我使用jquery动态添加局部视图。
在HttpPost上我放置了一个断点,我可以看到PersonDetails.Name中的值,但是我加载的partialview中的值都没有被绑定到PhoneModel。
如果能够将部分视图中的数据返回到我的viewmodel,我需要做什么?
答案 0 :(得分:0)
这是一篇很好的博客文章,可能有助于解决您的问题
http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx