2011-06-23 6 views
0

は、私はこのような変数を持っています。C#とJavaScript変数

機能がある

function(somevalue, somevalue2, somevalue3)

のような私が直面しています問題は、変数が渡されたときということです - それは "によるこの

"'123123', '123123123', '123123123'"

、それエラーのように渡します。 ?これをどうすれば解決できますか?

+0

JavaScriptでコンテンツをエスケープ()してから、C#でエスケープできますか? – mc10

+0

値を個別に渡すか、文字列を渡しますか? – Kevin

+0

@ケヴィン - ええ、私の問題を明確にするように更新されました:) – Tom

答えて

1

は、まあ、私は本当にそれをこのようにしないだろうが、あなたはこれを行うことができます:

var dependentVar = ['<%: somevalue %>', '<%: somevalue %>', '<%: somevalue %>']; 

yourfunction.apply(null, dependentVar); 

私はそれが悪くはないと思います。

yourfunction(dependentVar[0], dependentVar[1], dependentVar[2]); 

最初の方法は、関数がそれを処理する用意ができていると仮定すると、任意の数の値に対して機能するという利点があります。 (それがあって、そのように書かれる関数には、他の理由が存在しない場合は、直接、アレイ上で動作するように変更することができます。)

編集 — OK、あなたが経由で関数を呼び出す必要がある場合オブジェクトのプロパティは、あなたがこれを行うだろう:

var tmp = new var(); 
var newVar = tmp.someFunction.apply(tmp, dependentVar); 

「適用」の最初の引数は、「someFunctionが」呼び出されたときに「tmpは」thisの値であることを確認します。

+0

ほぼあります。大変感謝します:)私もそれを渡している関数は 'var newVar = new var。Function(dependentVar) ' - 最初の方法はどのように使うのですか? [編集]を参照してください – Tom

0

次の3つの別々の変数としてこれを行うことができます。

var dependentVar1 = '<%: somevalue %>'; 
var dependentVar2 = '<%: somevalue2 %>'; 
var dependentVar3 = '<%: somevalue3 %>'; 

そして、あなたが好きなようにそれらの値を周りに渡します。

0
var somevalue = '<%: somevalue %>'; 
var somevalue2 = '<%: somevalue2 %>'; 
var somevalue3 = '<%: somevalue3 %>'; 

またはちょうどそれで配列を作る:

var myArray = ['<%: somevalue %>', '<%: somevalue2 %>', '<%: somevalue3 %>']; 

本当に、最良の方法は、単に非同期にかかわらず、戻ってあなたのjavascriptにJSONオブジェクトを渡すことが考えられます。

0
function('<%: somevalue %>', '<%: somevalue2 %>', '<%: somevalue3 %>'); 
0

あなたが書いた方法では、dependentvarは1つの文字列として扱われます。

あなたの関数には3つの値が必要です - 関数に1つの値しか渡していないと仮定しています。

関連する問題