問題是SelectMethod和其他操作執行兩次。這很難分離,因爲它只發生在一個更大的解決方案上,而不是更簡單的演示應用程序。ASP.NET WebFormsMVP PageDataSource事件執行兩次對於未知原因
//.ascx
<asp:FormView runat="server" DataSourceID="userSource" DefaultMode="Edit">
<EditItemTemplate>
<mvp:PageDataSource id="userSource" SelectMethod="GetUser" />
//code behind
public User GetUser()
{
//returning single item as FormView is only DefaultMode=edit
return Model.User;
}
//presenter
public class UserOtherEditPresenter<IUserOtherEditView<UserEditViewModel>>
在試圖調試這裏是跟蹤AXD file。
更新:
正如有人指出,初始化似乎罰款,所以這個問題必須與應用程序的一些其他方面的衝突在其他地方。
AXD文件是發生這種情況的頁面的trace.axd,而GitHub repo是一個演示應用程序,它不會遇到同樣的問題,但以類似的方式進行設置。 – 2010-09-21 04:53:20
該問題似乎與註冊或初始化完全不同(您可以在Trace.axd中看到用戶控件已找到並註冊一次)。我真的需要一個實際展示此問題以幫助調試的頁面示例。這個頁面啓用了ViewState,是否有 – 2010-09-21 23:17:47
?如果沒有,有senerios選擇方法將被調用兩次[我已經看到這與ObjectDatasource] – 2010-09-21 23:53:03