2011-01-10 13 views
1

から結果を取得することは、私の問題です、クッキーは?などを有効にしている)と許容値のリストは、このチェックから返されます。動的ASP.NETページにJSを追加し、ここでJS

私は、彼らがこれらの要件を渡すかどうユーザーに警告した後、ユーザーがサイトを訪れたときに各JSファイルを介して実行し、許容値のリストに結果を比較したいです。

私は現在、JSをクライアントのページに追加するためにRegisterClientScriptBlock()を使用しているため、実行されていますが、JSの結果値をASP.NETに戻して比較するのに問題があります。

私は、JSが値をダンプし、ASP.NETから読み込む隠しフィールドを使用しようとしましたが、要求に応じて非表示フィールドを生成するのが難しいです(Jsファイル数クライアントが持つことができる)、それらをASP.NETコードで動作させることができます。

すべてのヘルプ、または右方向への提案は素晴らしいだろう、ありがとう!私はどうなるのか

答えて

1

は、結果はあなたがJSONにシリアライズうKeyValuePairオブジェクトの配列も持っています。だから、そうのようなJavaScriptのオブジェクト型を作成します。

function KeyValuePair(key, value){ 
    this.Key = key; 
    this.Value = value; 
} 

次に、あなたがそうのようKeyValuePairsの配列を構築します:

//This array is declared in the global scope 
var ValueArray = new Array(); 

function someFunction(){ 
    //this assumes that the key and value variables are created earlier in the function 
    var valueToStore = new KeyValuePair(key, value); 
    ValueArray[ValueArray.length] = valueToStore; 
} 

をだからあなたはあなたが希望、すべてのチェックを行っている時点で、あなたの隠されたフィールドに記憶するために配列をJSONにシリアライズするjson2 serializerを使用しています。

var jsonToSaveToHiddenField = JSON.stringify(ValueArray); 
//Logic to store resulting json and trigger the serverside evaluation here 

サーバー側では、JavascriptSerializerを使用して、jsonをKeyValuePairの配列にデシリアライズします。ここでは、msdnのドキュメントです:JavaScriptSerializer Class Reference

だからこのアプローチでは、1つの隠しフィールドが必要です。だから、動的にサーバー側の検索にかなり簡素化すべきであるそれを作成する必要はありません。

上記は最小限の変更で動作するはずですが、これをコンパイラで実行していないため、いくつかの小さな構文エラーがプリセットされている可能性があります。

関連する問題