JavaScript onchange 関数を関連付けたビューに、モデルのプロパティ (通貨) のドロップダウン リストがあります。
このような関数の目的は、モデルの Dictionary プロパティ (Currencies をその Rate にマップする) に従って、他のフィールドの (Rate) 値を更新することです。
<td>
@Html.DropDownListFor(model => model.Currency, new SelectList(ViewBag.CurrencyList, "Code", "Code"), new {onchange="update(this)"})
@Html.ValidationMessageFor(model => model.Currency)
<script type="text/javascript">
function update(elem) {
// alert("Currency changed!")
document.getElementById("@Html.IdFor(model => model.Rate)").value = '@Model.Currencies[<I_WISH_I_COULD_PUT_A_JS_VARIABLE_IN_HERE>]'
}
</script>
</td>
「I_WISH_I_COULD_PUT_A_JS_VARIABLE_IN_HERE」を elem.value にしたいのですが、JS 変数がリテラルとして解釈されるため、構文エラーが発生します。Javascript 値を含む HTML ヘルパーを呼び出すことができないようです。
私の目標は、コンボ ボックスで選択された値に従って EditorFor フィールドを更新することです。しかし、おそらく私のアプローチに何か問題がありますか?
どんな助けでも大歓迎です。