在 WebFormsMvp 页面中从 View 到 Presenter 获取业务对象的多个属性值的最佳方法是什么?
请记住 DataSources 的这个问题。
这是我的建议:
场景是,我有一个名为 Quote 的业务对象,我想从数据库中加载,编辑然后保存。Quote 类上有很多属性。该表单涉及其中大约 20 个属性。我有现有的方法来向/从数据库加载/保存 Quote 对象。我现在需要将这一切连接在一起。
所以,在我的演示者的 View_Load 处理程序中,我打算做这样的事情:
public void View_Load(object sender, EventArgs e)
{
View.Model.Quote = quoteService.Read(quoteId);
}
然后按如下方式绑定我的所有控件:
<asp:TextBox ID="TotalPriceTextBox" runat="server"
Text="<%# Model.Quote.TotalPrice %>" />
一切都好,数据在屏幕上。
然后用户进行大量更改并点击“提交”按钮。这是我不确定的地方。
我创建了一个名为 QuoteEventArgs 的类,公开了表单能够编辑的 20 个属性。当视图引发提交按钮的事件时,我将这些属性设置为后面代码中控件的值。然后引发事件以供演示者响应。演示者从数据库中重新加载 Quote 对象,设置所有属性并将其保存到数据库中。
这是正确的方法吗?如果不是,那是什么?