TryUpdateModel不会为FormView更新任何内容

时间:2013-06-21 15:09:26

标签: asp.net model formview

我正在使用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控件中所做的任何更改都会被忽略,并且模型在加载后保存为原样...

3 个答案:

答案 0 :(得分:3)

项仅用于单向数据绑定。对于双向数据绑定,您应该使用BindItem,即BindItem.Event_Num。

答案 1 :(得分:0)

Anik,我认为表单字段名称需要与属性名称匹配。

答案 2 :(得分:0)

不幸的是,他们的例子非常狭窄。我已下载它进行分析。他们不演示FormView更新方法,只演示网格,所以我不知道FormView控件的ID和NAME。我认为绑定值应该足以设置与更新的实际属性的对应关系(即Item.Event_Num)。还有一个奇怪的事情:当我点击TryUpdateModel方法时 - 它将我带到UserControl,但它没有显示此方法的描述!但我确实安装了FrameWork 4.5,我的文档来自ONLINE源......