たとえば、「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. 異なるモジュールから関数を呼び出す - 参照エラー
- 2. 関数呼び出しから関数呼び出し名を抽出する
- 3. from page * .aspx.cs JavaScript関数を呼び出す
- 4. aspx.csから同じプロジェクトの別のaspx.csにメソッドを呼び出す方法は?
- 5. 関数呼び出しに基づいて異なるレイアウトを呼び出す
- 6. HTMLページからのJQuery関数呼び出し
- 7. 関数呼び出しからのシーケンスポイント?
- 8. ASP.NET MVC関数呼び出し
- 9. 異なるデータ型の関数呼び出し
- 10. 異なるクラス間での関数呼び出し
- 11. Flash CS3からasp.netページの変数を呼び出す
- 12. JNAからC関数呼び出し
- 13. 署名が異なるJavaScript呼び出し関数
- 14. ASP.NET 2.0:AutoPostBack = trueのonChangeからjavascript関数を呼び出す
- 15. 別のページからjavascript関数を呼び出す
- 16. asp.netのコードビハインド関数からJavascriptを呼び出す
- 17. 呼び出された関数から(元の関数で)javascript関数を呼び出していますか?
- 18. コードラインのトレース/ JavaScriptからの関数呼び出しの呼び出し
- 19. 通常の関数からの仮想関数呼び出し
- 20. C#ASP.NETコードビハインドからjavascript関数を呼び出す
- 21. ASP.Netから非同期関数を呼び出す
- 22. ASP.Net VBコードからJavaScript関数を呼び出す
- 23. Java:異なるクラスの関数を呼び出す
- 24. 異なるクラスの同じ関数を呼び出す
- 25. jQueryで異なるiframe内の関数を呼び出す
- 26. 関数名からのJavascript呼び出し関数
- 27. javaからasp.net関数を呼び出す方法
- 28. 親ページからjavascript関数を呼び出す方法は?
- 29. ASP.NET:前方かなりstraigtあるページでマスターページから関数を呼び出すと、ユーザーコントロール
- 30. クラスから関数を呼び出す
あなたがしようとしているもののより具体的な例が、おそらくより良い答えを得るのに役立つでしょう。 Shobanはあなたの質問に対して最高の回答をしていますが、少し具体的であれば、正しいことを確実にするのに役立ちます。 – Daniel