【发布时间】:2013-03-04 17:56:20
【问题描述】:
我正在使用 .NET 4.5 中添加的 ASP.NET 表单模型绑定。我看到有很多关于模型绑定的东西应该使它更容易并减少你需要编写的代码量。但是,我想知道是否有办法手动更新项目。
我找到了这样的 TryUpdateModel 方法:
public void UpdateEquipment(int Id)
{
var equip = EquipCondContext.Equipments.Single(x => x.Id == Id);
TryUpdateModel(equip);
}
但是,我希望有能力做到这一点:
public void UpdateEquipment(int Id)
{
var equip = EquipCondContext.Equipments.Single(x => x.Id == Id);
//equip.Description = A TextBox.Text on that row that I just saved in my list.
EquipCondContext.SaveChanges();
}
有没有办法像这样进行更手动的更新?
这是一个示例场景。假设我在用户输入用户 ID 的行上有一个文本框,但在更新时我想实际设置他们的徽章编号。在我的更新函数中,我首先要进行查询以获取给定用户 ID 的徽章编号,然后在保存上下文之前在我的实体中设置此属性。
【问题讨论】:
-
在第二个示例中,您根本不需要模型绑定。
-
如果你举一个你想要达到的目标的例子,也许会让事情变得更清楚。为什么要手动更新?
-
您的第二个示例将起作用。 TryUpdateModel 将使用您的模型
equip和默认值提供程序(Form、Querystring 等)并尝试通过匹配模型上的名称来设置值。 -
@Nenad。我知道我不需要第二个模型绑定。如果我愿意,我只是写了一行作为手动设置属性的示例。我添加了一个示例来更好地证明/说明我为什么需要此功能。
-
@atticae 我已经为你添加了一个场景/示例。
标签: c# asp.net .net model-binding asp.net-4.5