在ASP.NET中创建多步骤更新表单的最有效方法?

在ASP.NET中创建多步骤更新表单的最有效方法?,asp.net,forms,data-binding,Asp.net,Forms,Data Binding,我有一个ASP.NET页面,其中包含一个插入数据库的表单。该页面使用向导控件,因为表单相当复杂,大约有80个表单字段,并且需要多个步骤。它不是数据绑定的,但数据是从代码隐藏页收集和插入的。我需要创建一个相同的表单来更新记录,因为这个表单只是插入。考虑到我可以重用第一个表单中的代码,设置一个表单最有效的方法是什么?我应该使用什么控件?我知道如何在FormView中对字段进行数据绑定以进行更新,但同时使用FormView和向导控件似乎会很复杂。什么最有效?我只需要一个向导就可以进行插入和更新。我如何

我有一个ASP.NET页面,其中包含一个插入数据库的表单。该页面使用向导控件,因为表单相当复杂,大约有80个表单字段,并且需要多个步骤。它不是数据绑定的,但数据是从代码隐藏页收集和插入的。我需要创建一个相同的表单来更新记录,因为这个表单只是插入。考虑到我可以重用第一个表单中的代码,设置一个表单最有效的方法是什么?我应该使用什么控件?我知道如何在FormView中对字段进行数据绑定以进行更新,但同时使用FormView和向导控件似乎会很复杂。什么最有效?

我只需要一个向导就可以进行插入和更新。我如何处理这种情况是创建一个数据传输对象或重用您正在使用的现有实体。比如说顾客。在页面加载事件中,检查是否是编辑请求(您可能会传入CustomerID进行编辑),然后从数据库加载对象并将其存储在会话或viewstate中,并设置FormView(将它们绑定到对象)。在向导的末尾,选中,
如果Customer.ID>0,则它是更新,否则它是插入。如果不是编辑和
会话[“CustomerID”]==null
会话[“Customer”]=new Customer()
并忽略FormView绑定,则在向导的每个步骤中更新会话中的Customer对象,并在最后执行插入。这样,您就不必维护两个几乎相同的方法。

如何忽略FormView绑定?