私は大きな束縛に陥っています。
簡単に言えば、私は大きなプロジェクトに取り組んでおり、ASP.NET、C#、すべてを学んでいます。
私のプロジェクトの要素は、ユーザー コントロールで構成されています。私の考えでは、多くのユーザー コントロールを作成し、それぞれが作成中のプロジェクトの「コンポーネント」の機能を実行できるというものでした。これまで、クライアント側のスクリプトを使用して、各ユーザー コントロールのコード ビハインドへの ajax 呼び出しをポストバックしてきました。AJAX は、(クライアントから必要な) データをユーザー コントロールに渡すことができ、アクションを実行するために何かを返すことができるため、うまく機能しました。
ポストバックがコード ビハインド側に送信されたときに、どのメソッドがどのデータを処理する必要があるかを判断するために、クエリ文字列を生成するメソッドを使用してコールバック「アクション」を作成しました。
私の問題は、多くのユーザー コントロールを 1 ページで使い始める必要があることです。そのため、ANY コントロールがポストバックを実行するたびに、すべてのコントロールがページ ロードを通過します。私のコールバック ソリューションはこれを利用できると思っていましたが、そうではありません。特に、カスタム登録されたコントロールを別のユーザー コントロールにドロップすると。
私は多くの調査を行い、これを回避するためのさまざまな方法を見てきましたが、それらの最良の方法は[WebMethod]
コントローラーです。ただし、私が取り組んでいるプロジェクトはNON-MVCです。
また、ページ全体へのポストバックを最小限に抑えるために UpdatePanel コントロールを使用しようとしていますが、ほとんど成功していません。
代替品として何を使用できますか? オプションが不足しているか、非常に基本的なものが欠けているように感じます。
TL;DR -- 複数のコントロールを区別できるユーザー コントロールにデータを渡すには、MVC 以外の方法が必要です。pagemethods (または page) は使用できません。手動の ajax 呼び出しがうまくいきません。完全なポストバックを行う余裕がない