2010-12-02 4 views
9

私はそれはサーバー側の変数として「leadid」扱いますので、それは動作しません。もちろん、このかみそりの構文内のjavascriptの変数を埋め込む

function endcall_click(leadid) { 
    document.location = '@Url.Action("index","dispo",new{id=leadid})/'; 
} 

のように見える方法があるが、私はjavascriptの変数を注入したいですメソッドに渡されます。

私はリードIDをラップしようとしましたが、うまくいきませんでした。

function endcall_click(leadid) { 
    document.location = '@Url.Action("index","dispo",new{id="<text>leadid</text>"})/'; 
} 

答えて

19

サーバで評価されるスクリプトにjavascript変数を挿入することはできません。なぜなら、このスクリプトが実行され、この変数がまだ存在しない出力を生成するからです。

function endcall_click(leadid) { 
    document.location = '@Url.Action("index", "dispo")/' + leadid; 
} 

欠点は、これはJavaScriptでルートを操作すると仮定していることですし、サーバー上でそれらを変更することにした場合、コードが壊れる可能性がありますこれを達成する唯一の方法は、結果の文字列を操作することです。

+3

を。今私はそれについて考える。それはかなりばかげた質問でした:)...面白いのは、サーバー変数からleadidを計算するので、私は単純にそれを使うことができます。私が投稿したときは午前3時だった;)。ご協力いただきありがとうございます。 – Emad

1

私は最終的に解決策(* .vbhtml)が見つかりました:あなたは正しいです

<script type="text/javascript"> 
function razorsyntax() { 
    /* Double */ 
    @(MvcHtmlString.Create("var szam =" & mydoublevariable & ";")) 
    alert(szam); 

    /* String */ 
    var str = '@stringvariable'; 
    alert(str); 
} 
</script> 
関連する問題