2012-02-06 7 views
0

辞書値を呼び出し、それを '_'に分割しようとするjavascript関数を記述しようとしています。問題は、Dictionaryから値を取得するためのKeyが、ドロップダウンリストから抽出されたJavascript変数にあることです。 Javascript内でC#関数の中でJavascriptのvarを使用することは可能ですか?Javascript var内のC#関数Javascript内

コードそれが今あるよう:

var Category = document.getElementById('Properties').value; 
var Name = document.getElementById(Category).value; 
Category = '@Model.Dictionary[Name].Split('_')[0]'; 

はEDIT:

人々は私の問題を誤解している、.Split機能は、作業を行いますが辞書[名]は私に問題を与えています。私はコードに

var Category = document.getElementById('Properties').value; 
var Name = document.getElementById(Category).value; 
Category = '@Model.Dictionary["Bicycle"].Split('_')[0]'; 

を入力すると、それが完璧に動作しますが、私は、DropDownListコントロールの外に動的に「自転車」の部分を取得したいです。

EDIT 2:

オーケー、私は以上のような状況を考えていますし、それは私がニーズに必要とされるよりも、もっとたくさんの仕事をしようとしていますどのようなものを、しようとした皆に感謝をbeterソリューションを見つけたことを決定しました助けて。

答えて

0

DropDownListにValueとTextで異なる値を設定することで、この問題を完全に回避できました。これにより、Dictionaryを使用していた入力をDropDownListのValueからTextを変更せずに取得できます。

1

あなたはクライアント側とサーバー側の間で少し混乱しています。このようなサーバーサイドコードと対話するには、サーバーメソッドを呼び出すためにサーバーにポストするか、AJAXコールバックを書き込む必要があります。

http://mikehadlow.blogspot.com/2008/10/mvc-framework-and-jquery-ajax-heaven.html

+0

これは.NET開発者にとって頻繁に発生する問題です。何がありますか? –

+1

@Diodeus:問題の一部は、Webのステートレスな性質を隠すために最善を尽くすASP.NETページモデルに起因する可能性があります。 – Guffa

+1

Webフォームは、人々の論理的な頭脳を壊します。インラインのJavaScript、CSS、およびスタイリングは普及しており、人々は両方向に進むことができると想定しています。彼の例を見ても、JavaScriptで可能な限りC#の値を割り当てたいと思っているように見えますが、維持するのは醜く恐ろしいものです。私は本当にあなたがcouldntを望む。 – Henry

0

いいえ、それはできません。ページがブラウザに送信される前にすべてのサーバーコードが実行され、すべてのクライアントコードが実行されます。

クライアントコードで辞書を使用するには、クライアント側で辞書を再作成するサーバー側からJavascriptコードを作成する必要があります。

これができない場合は、サーバーへのAJAX呼び出しを行う必要があります。

関連する問題