2009-08-20 12 views
3

ASP.NET MVCの素晴らしい点の1つは、ルーティングエンジンです。私は自分のURLを生成し、私はルートを変更するときに何も壊れていないことが大好きです。ASP.NET MVCを使用してクライアント側でURLを生成するにはどうすればよいですか?

しかし、私はクライアント側でこのメカニズムをどのように適用できるかはわかりません。

はのは、私は2つのドロップダウンリストを持っており、第二のリストの内容は、最初のリストで選択した項目によって異なり一般的なシナリオを想像してみましょう。最初のリストの選択が変更されたときに、2番目のリストの項目を非同期にロードしたいとします。

URL、デフォルトルートを使用して、次のようになります/車/ GetModelsForBrand /ホンダ

十分に簡単...私は変更する場合は、ルーティングとURLがどうなるか

var url = '/Cars/GetModelsForBrand/' + $("#brands").val(); 

: /ホンダ/ GetModels

私は非自明な方法で自分のコードを破りました。

クライアント側からURLを生成する方法はありますか?

答えて

2

我々は同様のシナリオを持っていたし、アクションへのリンクを生成し、後でそれを私たちのパラメータを追加することによってそれを解決しました。私たちは、行動が不明確で、クライアント時に設定したい場合もありました。この場合、Indexへのリンクを生成し、クライアント側で置換を行いました。

リンクを生成することにより、Html.ActionLinkヘルパーメソッドを使用することを意味します。

+0

このような意味ですか? var url = '<%= Html.BuildUrlFromExpression (x => x.GetModelsForBrand( "[ブランド名]"))%>'; var brandUrl = url.replace( '\\ [BRANDNAME \\]'、$( "#brands")。val()); あまりにもきれいですが、私はそれが仕事をすることができると思います。 –

+0

はい、そうです。私は文字列の置換速度がjavaにあるのかどうかわかりません。これらがたくさんある場合は、より良い方法を探したいかもしれません。 –

+0

+1の魔法の文字列を取り除くために – mxmissile

関連する問題