0

問題は、 SelectMethodと他のアクションが 2 回実行されることです。これは大規模なソリューションでのみ発生し、単純なデモ アプリケーションでは発生しないため、特定するのが困難でした。

//.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 ファイルを次に示します。

アップデート:

初期化は問題ないように見えると指摘されているため、問題はアプリケーションの他の側面と競合して別の場所にあるに違いありません。

4

2 に答える 2

1

これをあなたの質問へのコメントとして投稿したかったのですが、バッジの数が不足しているためにその特権が与えられていないか(FourSquareのものを下取りできますか?)、UXが混乱しすぎています。これが私の無回答の答えです:

送信したtrace.axdは、問題を実証するためのものですか?それはすべて私には正常に見えます。プレゼンターを1人だけ拘束します。

タイプADC.Logic.Views.IUserOtherEditView`1[[ADC.Logic.Views.Models.UserEditViewModel、ADC.Logic、Version = 1.0.0.0、Culture = neutral、 PublicKeyToken=null]]。(実際のビューインスタンスのタイプはASP.controls_userotheredit_ascxです。

あなたの質問のタイトルによると、私たちはこのイベントが2回見られると予想しています。

しかし、あなたの質問のタイトル内容は私には一致しません。SelectMethodが複数回起動されると言っていますが、これはPageDataSourceに問題があることを示している可能性があります。

明確にしていただけますか?

于 2010-09-21T23:16:35.980 に答える
1

私は同じ問題を抱えていました。簡単な修正は、ユーザー コントロールに AutoDataBind = false を設定することです。これにより、FormView の DataBind への 2 番目の呼び出しが停止され、次に SelectMethod への 2 番目の呼び出しが停止されます。formView.DataBind への最初の呼び出しは、Page.ProcessRequestMain の一部として発生し、データグリッドの DataSourceID が原因で発生します。

于 2010-12-28T12:34:37.040 に答える