2010-11-29 17 views
4

私のmvcビューで私の "Model"はオブジェクトのリストです。この場合、オブジェクトのIDを取得したいと思います。JavaScriptリテラルを挿入しますか? (文字リテラルの文字数が多すぎます)

var counter = 0; //for example 

var id = '<%=Model[' + counter + '].Id %>'; 

これは私が得るものです:

ありがとう!

+0

はおそらく、あなたはそうのような、それ自身のC#のコードブロック内のカウンタ変数を有することが意図しましたか?私はいくつかの奇妙な設定でjavascriptとC#が混在していると思います。 – jfar

答えて

0

はい、カウンター変数はModel []のインデックスとして使用できません。これはクライアント上にのみ存在するためです(このスニペットがスクリプトのhtml要素内にあると仮定します)。ビューを作成しているときは、作成中の長い「文字列」(ブラウザに返されたhtml)と考えると便利です。この場合、 'counter'はスクリプトブロック内の一部の文字であり、ブラウザによって最終的に解釈されるため、ビューを構築する際に使用できる変数ではありません。 <%=%>ブロックは、追加する文字列を返すだけです(=記号の意味です)。あなたが含むコードを投稿することができ

<% var counter = 0; %> 
<script language=javascript> 
    var id = '<%=Model[counter].Id %>'; 
</script> 
0

これは本当に意味をなさない。あなたはそれの真ん中にクライアント側のJavascriptでASP式をまとめようとしています。 Javascriptがクライアントで実行されている間は、ASPのすべてがあなたのサーバー上で実行されるので、それは無意味です。

あなたがやりたいことの残りの部分を知らずに、どのように進めるべきかを言うのは難しいです。

関連する問題