当我的父类/模型发回服务器并使用BindAttribute“Bind”时,子对象都为空。
如果我不包括绑定,那么它的工作原理
ArrayAdapter
例如,person.Address属性不为null,并且它的属性是根据表单提交设置的。
仅供参考,使用EditorFor在视图中创建地址,所有内容都包含在请求表单中。
但如果我使用Bind,它就不起作用..
<h3 class="italic orange">Accounting Packages</h3>
<div class="sidebarmenu">
<li><a href="#">What Is It</a></li>
<li><a href="#">How It Works</a></li>
<li><a href="#">Packages</a></li>
</div>
person.PersonId和person.AddressId设置正确,但person.Address为空。
如果使用Bind和多个参数,就像这样......
public ActionResult SaveEdit(int id, Person person)
它中途工作,两个对象都被创建,也没有通常存在的相关属性。
这是正常行为,还是我做错了什么?
答案 0 :(得分:2)
你没有展示你的模型,但假设它包含属性PersonId
,AddressId
和Address
,其中Address
是一个复杂的对象,那么它需要
public ActionResult SaveEdit(int id, [Bind(Include = "PersonId, AddressId, Address")] Person person)
但是,更好的方法是使用仅包含您正在编辑的属性的视图模型,并避免使用[Bind(Include = "properties, list")]