我正在使用Framework 4.5并决定利用它的一些改进。 假设我在FormView中有以下控件:
<asp:TextBox ID="EventNumberTextBox" runat="server" Text='<%# Item.Event_Num %>' />
在我的UpdateMethod中,我做了以下内容:
public void UpdateModelFromView(int? ID)
{
var modelView = new AlertMessageController().LoadById(ID);
var updateSuccess = TryUpdateModel(modelView);
if (updateSuccess)
{
new AlertMessageController().Save(modelView);
RedirectToViewPage();
}
}
问题是尽管Form集合确实包含了我所做的所有更改 - 在给定的情况下我将Event_Num设置为某个值 - 更改不会反映到modelView。换句话说,我在FormView控件中所做的任何更改都会被忽略,并且模型在加载后保存为原样...
答案 0 :(得分:3)
项仅用于单向数据绑定。对于双向数据绑定,您应该使用BindItem,即BindItem.Event_Num。
答案 1 :(得分:0)
Anik,我认为表单字段名称需要与属性名称匹配。
答案 2 :(得分:0)
不幸的是,他们的例子非常狭窄。我已下载它进行分析。他们不演示FormView更新方法,只演示网格,所以我不知道FormView控件的ID和NAME。我认为绑定值应该足以设置与更新的实际属性的对应关系(即Item.Event_Num)。还有一个奇怪的事情:当我点击TryUpdateModel方法时 - 它将我带到UserControl,但它没有显示此方法的描述!但我确实安装了FrameWork 4.5,我的文档来自ONLINE源......