私はすべてのページがマスターページを使用するasp.net 4.0アプリケーションを持っています。私は、マスターページとページの子の両方で、いくつかの動的な側面があります。複数のScriptManagersを使用する
コードの背後にある:
<script>
PageMethods.GetString(OnSucceeded, OnFailed);
function OnSucceeded(rslt) {
alert('cool,worked.');
}
function OnFailed(error) {
alert('ooops,failed.');
}
</script>
:ページコンテンツ自体に続いて
using System;
using System.Web;
using System.Web.Services;
namespace MyApp.Secure
{
public partial class myPage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[WebMethod]
public static string GetString()
{
return "abc";
}
}
}
の両方のために私はこの種のパターンを使用してMicrosoftのScriptManagerで構築を使用できるようにしたいと思いますですから、このテクニックを使うには、私のマスターページと私の子ページの両方に静的な[Webメソッド]を公開したいと思います。私の質問は、ScriptManagerでこれをどうやって管理するのですか?私の理解から、私はPageManagerオブジェクトを使用できるようにjavascriptライブラリが追加されるように、フォームタグ内にScriptManagerを持たせる必要があります(なぜですか?)。私は自分のマスターページに1つのScriptManagerを作成し、それをマスターページの無駄なフォームタグに入れておくべきですか?そのScriptManagerは私の子ページの[WebMethod]機能を受け取りますか?そしてそのフォームタグはどうですか:私は1つのフォームrunat = 'server'タグしか持つことができないので、私はマスターページ内で必要な他のフォームを使ってそれをどのように管理しますか?私の小さなフォームのように、ページの上部に検索機能がありますか?あなたのマスターページ上の
おかげ
Thanks Prescott。私はちょうどhttp://www.highoncoding.com/Articles/430_Calling_Page_Methods_Using_JQuery_and_Returning_JSON_Result.aspxでビデオを見つけました。私はそれがずっときれいなアーキテクチャだと思います。あなたの* .aspxページで設定した[WebMethod]メソッドが単純なURLを介してアクセスできることはわかりませんでした。私はFiddlerを使ってそれを理解できたと確信しています。だから、今すぐ私はAJAXライブラリ(ExtJs)を直接使って[WebMethod]を呼び出すだけで、Microsoftが単にWebメソッドを呼び出すだけで追加するすべてのc-r-a-pオーバーヘッドを取り除く予定です! ScriptManagers、ScriptProxies、無駄なフォーム、ugh! – sisdog
彼らが静的なWebメソッドである場合、なぜ好奇心が強いのですか?私はあなたがフルページのポストバックとビューステートのものが必要だと思った。あなたが良い解決策を見つけられたらうれしい – Prescott
私は既にAJAXの必要性の90%をカバーするODataとEF 4.0(私はそれが大好きです)と本格的なREST APIを持っています。私の[Webメソッド]の必要性は、ページに特有のサービスのためのものです。私はそのサービスを呼び出すjavascriptと一緒に同じページにサービスコードを持つことのカプセル化が好きです。たとえば、自分のページの1つで、AJAXを介してキューにタスクを送信するボタンを押します。その小さな要求は私のデータモデルとは関係がなく、サイト全体の機能ではありません。私はちょうど速い[Webメソッド]をポンドし、いくつかのjavascriptを追加して、それはすべて良いです! – sisdog