2012-03-06 13 views
2

Javascriptに「コードビハインド」変数を渡すことについての無数の例と記事を見つけましたが、その逆を行う方法があるかどうかは疑問です。JavaScriptコードをインラインASP.NETコードに渡すことはできますか?

私の見解では、ASPヘルパークラスとjavascriptの変数を使用して動的にURLを作成しようとしています。 actionnameは、いくつかの他のロジックによって予め決定される

var url = '@Url.Action("' + actionname + '", "controller")'; 

...:私は何をしたいのようなものです。私はそのようなインラインコードを分解することはできませんので、これは動作しません。

他にもこのようなことをやろうとしたことがありますか?

ありがとうございます!

+1

これは不可能です。 Javascript変数は、クライアント上にのみ存在します。 – SLaks

答えて

1

actionnameがjavascript変数の場合、これを行うことはできません。@Url.Actionメソッドは、クライアントに返される前にサーバー側で実行されます。したがって、クライアント上で実行されるjavascriptは、@Url.Actionコールに情報を送信できません。

これがまだ当てはまる場合は、actionnameをargとして渡して、どこにルーティングするかを決定するアクションに渡すことができます。

+1

ありがとうございます。これは、コードがどこで実行されるかを考えるときには、より意味があります。 – Paul

3

これは面倒ですが、私は時々HiddenFieldを使って値を渡しました。

ASP:

<asp:HiddenField id="hfStuff" runat="server" /> 

のjQuery:

$("#<%= hfStuff.ClientID %>").val("my value"); 

あなたはその後、分離コードからhfStuff.Valueにアクセスすることができます。

私は言ったように、汚いですが、仕事を時々終わらせます。

関連する問題