我正在使用.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的徽章编号,然后在保存上下文之前在我的实体中设置此属性。
答案 0 :(得分:1)
您要做的是挂钩模型绑定过程并在保存之前更改值。我不确定Webforms中的模型绑定是否与MVC中的1:1相同,但您可以尝试这篇文章:
这篇文章是关于验证的,但您可以轻松地更改那里的值。
基本上你要做的是为你的类注册一个自定义的ModelBinder,然后挂钩到绑定模型的调用。
答案 1 :(得分:0)
如果您想手动跟踪文本框中的更改,则必须收听Textbox.TextChanged
event。
<asp:Textbox ... OnTextChanged="MyTextBoxOnTextChanged" />
您可以根据需要使用文本框值,在您的情况下将其存储为相应的设备描述。