2012-01-03 6 views
0

Я использую asp.net mvc3, и я хочу, чтобы маршрут, который не имеет конца писать .. Я имею в виду что-то вроде этого:Url маршрутизация - бесконечна URL

www.site.com/Cameras/{id}={string}/{id}={string}/{id}={string}/{id}={string}..... 

где ид представляет собой идентификатор фильтра и строку представляют значение этого фильтра .. У меня есть много типов фильтров, и в будущем я хочу иметь возможность добавлять больше без какой-либо зависимости. Как должен выглядеть этот вид маршрута? И как мне начать работать с этими параметрами?

ответ

1

Что вам нужно сделать, это написать маршрут приема всей, а затем интерпретировать это следующим образом:

routes.MapRoute("Cameras", "cameras/{*url}", 
     new { controller = "Cameras", action = "Index" } 
); 



public ActionResult Index(string url) 
{ 
    var ids = url.split('/'); 
    // now do what you need with the ids 

} 

Вы должны использовать URLs так:

/камеры/id1/id2/id3/id4

+0

Я не уверен, что вопрос имел в виду это, но что, если у вас нет идентификатора id1 или у вас есть только id6 или что-то еще? Я действительно не использовал ничего подобного, но это ставит меня как нечто, что вы хотите сделать, если хотите добавить параметры abritrarily - удалите их тоже ... – Chris

+0

Я согласен, что это не обязательно лучший вариант но если вы хотите, чтобы конечный список идентификаторов, который вы затем можете интерпретировать, был бы таким. – Richard

+0

Я думаю, вы можете просто сделать URL-адреса похожими на '/ cameras/name = bob/paramX = 28 /' и т. Д. Или, если '=' - это специальный символ, то только какая-то другая выбранная вещь. Является ли использование querystring, нахмуренным в mvc3, или это действительно лучший способ делать произвольные URL-адреса? Извините, если вопрос глупо, но я не использую MVC, и я пытаюсь поглотить его на этом как это :) – Chris

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