我有以下实体,我在asp.net mvc应用程序中用作模型
public class USERS{
public int PK { get; set; } // Primary key
public string Username { get; set; }
public string Password { get; set; }
public int FK_PEOPLE { get; set; } //Foreign key to table PEOPLE
public PEOPLE Person { get; set; } // The very PEOPLE property
...10-15 additional fields, including List<SomeEntity>, etc.
}
这是班级人物
public class PEOPLE{
public int PK { get; set; } // Primary key
public string Name { get; set; }
public string Surname { get; set; }
}
当我将USERS对象发送到我的View时,我获得了所有数据,并在表单中显示所有内容。一切安好。我可以看到所有的数据。为了使事情变得更加花哨,我在Partial View中显示了PEOPLE属性。
当我在HttpPost Action中取回模型时出现问题。我管理(使用HiddenFor)获取USERS.PK和USERS.FK_PEOPLE但USERS.Person实体始终为null。
我试过[Bind(Prefix =“USERS”)],但没有用。即使像这样的溶剂有效,我是否应该为我的模型中的每一个属性执行此操作?我是否真的必须手动修复每个属性的所有绑定?这将需要永远..必须有一个更好的方法来完成我的模型,至少我在HttpGet行动中发送它..
感谢Gratefull为我提供所有帮助:)
PS:我知道,模型绑定有很多线程,但我认为我没有绑定问题。我想找到一种“避免”绑定的方法。答案 0 :(得分:0)
归功于@StephenMuecke
我使用的是PartialView错误。溶剂是用它作为EditorTemplate。 所以,这有效:
<div class="form-group">
@Html.EditorFor(m => m.PERSON)
</div>
这不起作用:
<div class="form-group">
@{ Html.RenderPartial("~/Views/PartialViews/Person/Index.cshtml", Model.PERSON); }
</div>
最后,我所要做的就是将我的PartialView重命名为PERSON.cshtml并将其移动到〜/ Views / Shared / EditorTemplates /
下非常感谢!