たとえば、「main.aspx」のように1ページ内にボタンがある場合。そして、クリックすると、 "main.aspx.cs"のクリックされたメソッドが別の* .aspx.csページから関数を呼び出すだけでなく、その* .aspxページにリダイレクトされるようになります。異なる* .aspx.csページからのAsp.Net呼び出し関数
答えて
クエリ文字列のパラメータでリダイレクトしてから、目的のページでその関数を実行するのはなぜですか?
ASP.NETページのライフサイクルを理解する必要があります。なぜこれがコーシャーではないのかがわかります。複数のページからメソッドを実際に呼び出す必要がある場合、いくつかの外部クラス/オブジェクトのための良い候補のように思えます。
代わりに、クエリ文字列パラメータを使用する代わりに、セッションフラグを設定してからこの新しいページにリダイレクトすることができます。次に、そのページのメソッドを呼び出すときにセッションフラグをクリアします。
+1はそれが正直ではないことを示します。セッションを使用してアクションを通信する場合は-1 –
Bah、グローバル変数を使用しないと思いますか? :) – Bryan
あなたがしようとしているもののより具体的な例が役に立つでしょう。さもなければ、あなたはあらゆる種類の答えを得るでしょう、その多くはマークから外れるでしょう。
共通コードをApp_Codeフォルダに配置する必要があります。また、フォームのコードビハインド内にビジネスロジックを持たないようにする必要があります。
別のページでメソッドを呼び出すためにあるページを必要としているという事実は、これを行っていないことを示しています。ページはアクションを表示し解釈するためのものですが、ビジネスロジックを保持してはいけません。
ショッピングカートの不自由な例。
ProductView.aspx - calls Cart.AddToCart(Product p) CartView.aspx - displays all items in the cart, and the user can update or remove items. - calls Cart.RemoveItem(int cartIndex) - calls Cart.UpdateItem(int cartIndex, int newItemCount)
カート自体はCartView.aspxまたはProductView.aspxに属しません。それは代わりに、だからあなたのソリューションは、また
/(root of your web folder) Product/ ProductView.aspx ProductView.aspx.cs Cart/ CartView.aspx CartView.aspx.cs App_Code/ Cart.cs Product.cs
のようなものを見ることができる、それはまだそこにいなかったら、App_Codeフォルダーを追加するWebプロジェクトを右クリックし、[Add ASP.NET folder
を選択し、選択し~/App_Code/Cart.cs
に属しApp_Code
それは理にかなっています。 Cart.cs内の機能はCartView.aspxにのみアクセスできるか、* .aspxページにアクセスできますか? – user84786
〜/ App_Codeにあるものはすべてのページで使用できます。 –
非常に基本的な方法では、Main.aspx
はOther.aspx
に行き、クエリーストリング上の少量のデータを渡してアクションを示します。 Other.aspx
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
if("runAway".Equals(Request.QueryString["action"])
{
RunAway();
}
}
}
で
Main.aspx
protected void OnSomeButtonClicked(object sender, EventArgs e)
{
if(someCondition)
{
Response.Redirect("~/Other.aspx?action=runAway");
}
}
またServer.Transfer versus Response.Redirect上に読んでください。どちらを使用するかは状況によって異なります。
また、QueryStringパラメータはユーザーが簡単に変更できるため、常に検証し、ユーザーを信頼することはありません。
他のページクラスからオブジェクトをインスタンス化し、そのメソッドを呼び出します。
protected Button1_Clicked(Sender s, Eventargs e){
MyNamespace.Page_Other po = new MyNamespace.Page_Other();
po.Method1();
Response.Redirect("~/page_other.aspx");
}
- 1. Truffle Solidity - 異なるコントラクトからの呼び出し関数
- 2. HTMLの異なるファイルからJS関数を呼び出す
- 3. ionic v2プロバイダの呼び出し側ページから関数を呼び出す
- 4. from page * .aspx.cs JavaScript関数を呼び出す
- 5. 異なる反応ファイルから関数を呼び出す
- 6. 異なるクラスとファイルから関数を呼び出す
- 7. 異なるモジュールから関数を呼び出す - 参照エラー
- 8. aspx.csから同じプロジェクトの別のaspx.csにメソッドを呼び出す方法は?
- 9. 関数呼び出しから関数呼び出し名を抽出する
- 10. ASP.NET JavaScript関数呼び出しのコードビハインド
- 11. 異なる関数呼び出しの中でsetState()を呼び出す
- 12. MVC4 cshtmlページ関数呼び出し
- 13. 子ページから親ページのjavascript関数を呼び出す
- 14. ASP.NET MVC関数呼び出し
- 15. 関数呼び出しに基づいて異なるレイアウトを呼び出す
- 16. HTMLページからのJQuery関数呼び出し
- 17. Flash CS3からasp.netページの変数を呼び出す
- 18. JQMのページから関数呼び出し
- 19. 関数呼び出しからのシーケンスポイント?
- 20. 親からの呼び出し関数
- 21. ionic 2 - 呼び出しページapp.component.tsから関数
- 22. 外部jsを使用してaspx.cs関数を呼び出す(ボタンクリック時)
- 23. ASP.NET 2.0:AutoPostBack = trueのonChangeからjavascript関数を呼び出す
- 24. Azure関数 - 異なる呼び出し間の共有オブジェクト
- 25. 異なるクラス間での関数呼び出し
- 26. 異なるデータ型の関数呼び出し
- 27. asp.netのコードビハインド関数からJavascriptを呼び出す
- 28. Asp.net +関数内の関数の呼び出し
- 29. JNAからC関数呼び出し
- 30. 異なる引数型の関数をPHPで呼び出す
あなたがしようとしているもののより具体的な例が、おそらくより良い答えを得るのに役立つでしょう。 Shobanはあなたの質問に対して最高の回答をしていますが、少し具体的であれば、正しいことを確実にするのに役立ちます。 – Daniel