ASP.NET MVC サイトの JavaScript で URL をジャンプする必要がある状況があります。
ご存知のように、xx.cshtml で @Url.RouteUrl("RouteName", new { params}) を使用して URL を生成できます。今、JavaScriptで同じ方法でURLを生成したいのですが、可能ですか?
私が試してみました:
window.location.href ='@Url.RouteUrl("RouteName", new {param1="' + param+ '"}) %>'.
しかし、うまくいきません。
私のルート:
routes.MapRoute(
"ListOfTicketAB",
"piao/{citystart}-{cityend}",
new { controller = "Tickets", action = "ListS2S", traintype = 0, sorttype = 0, page = 1 },
new { citystart = "[a-zA-Z0-9]+", cityend = "[a-zA-Z0-9]+" });
私のjs:
var selectS;var selectE;function SearchClick(obj) {
location.href = '@Url.RouteUrl("ListOfTicketAB",new {citystart="' + selectS+ '",cityend="' + selectE+ '"})';
}
selectS と selectE は、他のいくつかの関数で設定されます。
上記で、エラーが発生しました:
「/」アプリケーションでサーバー エラーが発生しました。
パスに不正な文字があります。説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
例外の詳細: System.ArgumentException: パスに無効な文字があります。
ソース エラー:
現在の Web 要求の実行中に未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタック トレースを使用して特定できます。