2013-11-30 3 views
4

У меня есть веб-сайт ASP.NET с включенным URL-переписанием. Я знаю, как получить параметры маршрута с помощью C#:Как получить параметр маршрута в JavaScript?

Page.RouteData.Values["id"] as string; 

Но я не знаю, как его получить из javascript? Ниже мой переписано формат ссылка:

http://www.domain.com/topic/ {ID}/{название}

Я хочу, чтобы получить это {ID} поле с помощью JavaScript. Пожалуйста помоги!

UPDATE

У меня есть этот код, который получает параметр запроса.

function getParameterByName(name) { 
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); 
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), 
     results = regex.exec(location.search); 
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 
} 

Как это можно изменить, чтобы получить параметр маршрута?

+0

Проверить этот пост, я думаю, вы найдете решение там: [ссылка] (http://stackoverflow.com/questions/979975/how-to-get-the-value-from-url- параметр) – jalba

+0

URL-параметр - это другое. Я не думаю, что это сработает. –

+0

, если ваш формат 'http://www.domain.com/topic/ {id}/{title}', то почему бы вам не «window.location.href» в строке; разделите его на '/'; а затем получить доступ к определенному индексу. –

ответ

5
function getValueAtIndex(index){ 
    var str = "http://www.sample.com/234/Fiddle/test"; //window.location.href; 
    return str.split("/")[index]; 
} 
console.log(getValueAtIndex(3)); 
+0

этот вид отстой, если вы работаете с виртуальным каталогом. – Mike

+1

Мне это нравится, но разделяю строку на отдельную переменную массива, а затем используем длину массива - поставленный индекс - 1 в качестве индекса массива. Таким образом, он работает в обратном направлении, поэтому «test» возвращается для индекса 0, «Fiddle» для индекса 1 и т. Д. Это решит проблему виртуальных каталогов. – Kate

Смежные вопросы