2017-06-01 11 views
0

APIルートのid引数に$(this).prev("input").val()を追加しようとしましたが、C#の部分を停止する方法がわかりません。<text></text>または@:について考えましたが、このようには動作しません。JavaScript変数をルート引数として使用

誰かがトリックをしていますか? (URLを足す代わりにRouteURL機能を使用して考えたが、私はそれをプログラムする良い方法だとは思わない)あなたはそのようなJavaScriptの値(覚えを注入することはできません

$.ajax({ 
    url: '@Url.RouteUrl("IsTranslated", new { id = <text>$(this).prev("input").val()</text> }, new {[email protected] }) 

// [...] 
}) 
+0

は、次のようなかみそり、ASPタグ、およびJavaScriptを混在させることはできません。彼らはまったく異なる時に走ります。 – evolutionxbox

+0

okですので、今は完全なURLを書きます –

答えて

3

、カミソリコードが評価され、サーバ側)。何ができることは、「テンプレート」の文字列を構築し、id値を置き換えるために、あなたのヘルパーを使用している:

var template = '@Url.RouteUrl("IsTranslated", new { id = 0 }, new { [email protected] })'; 

var id = $(this).prev("input").val(); 

var url = template.replace('id=0', 'id='+id); 

$.ajax({ 
    url: url 
    // [...] 
}) 

これは、クエリ文字列値は、ヘルパーによって生成されていることを、もちろん、前提としています。ない場合は、このかもしれない作品:

var template = '@Url.RouteUrl("IsTranslated", new {}, new { [email protected] })'; 

var id = $(this).prev("input").val(); 

var url = template.replace('IsTranslated', 'IsTranslated?id='+id); 

$.ajax({ 
    url: url 
    // [...] 
}) 
関連する問題