gpt4 book ai didi

c# - ASP.net MVC - 在复杂模型上更新模型

转载 作者:太空宇宙 更新时间:2023-11-03 16:53:55 27 4
gpt4 key购买 nike

我正在努力获取复杂模型的表单内容,然后使用该复杂模型更新模型。

我的账户模型有很多个人

[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 与复杂模型一起使用?

我希望我说得足够清楚

非常感谢:)

更新

这就是我要找的: http://goneale.com/2009/07/27/updating-multiple-child-objects-and-or-collections-in-asp-net-mvc-views/

最佳答案

除非您的帐户类型实现 IValueProvider,否则不支持此方案。

不过,那将是一些非常奇怪的 MVC。模型绑定(bind)器应该理解 HTTP 请求并将其转换为您的模型,而不是将您的实体绑定(bind)到您的其他实体。

经过进一步检查,我认为您正在寻找: http://msdn.microsoft.com/en-us/library/dd487246.aspx

试试这个:

 try{
db.Accounts.ApplyCurrentValues(record);
db.SubmitChanges();
}

关于c# - ASP.net MVC - 在复杂模型上更新模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2905584/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com