我正在努力获取一个复杂模型的表单内容,然后使用该复杂模型更新模型。
我的帐户模型有很多人
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult OpenAnAccount(string area,[Bind(Exclude = "Id")]Account account, [Bind(Prefix="Account.Individuals")] EntitySet<Individual> individuals){
var db = new DB();
account.individuals = invdividuals;
db.Accounts.InsertOnSubmit(account);
db.SubmitChanges();
}
因此,它可以很好地添加新记录,但不能更新它们,如:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult OpenAnAccount(string area,[Bind(Exclude = "Id")]Account account, [Bind(Prefix="Account.Individuals")] EntitySet<Individual> individuals){
var db = new DB();
var record = db.Accounts.Single(a => a.Reference == area);
account.individuals = invdividuals;
try{
UpdateModel(record, account); // I can't convert account ToValueProvider()
db.SubmitChanges();
}
catch{
return ... //Error Message
}
}
我的问题是如何将UpdateModel与帐户模型一起使用,因为它不是FormCollection。 我怎么转换它?如何将ToValueProvider与复杂模型一起使用?
我希望我足够清楚
非常感谢:)
答案 0 :(得分:0)
除非您的帐户类型为IValueProvider,否则不支持此方案。
然而,这将是一些非常奇怪的MVC。模型绑定器应该理解HTTP请求并将其转换为您的模型,而不是将您的实体绑定到其他实体。
经过进一步检查,我认为您正在寻找: http://msdn.microsoft.com/en-us/library/dd487246.aspx
试试这个:
try{
db.Accounts.ApplyCurrentValues(record);
db.SubmitChanges();
}