2009-08-14 3 views
9

Я Buiding в UrlHelper для маршрута как в best practicesUrl.RouteUrl возвращает нуль

проблема заключается в том, что возвращаемое значение всегда нуль при отладке в обнаружил, что

Url.RouteUrl (» х ") возвращает нуль

Url.RouteCollection [" X "] обратный путь

я пытаюсь сделать:

public static string Category(this UrlHelper helper, int Id, string category) 
{ 
    return helper.RouteUrl("X", new {id = Id, category= category}); 
} 

Я не могу видеть, где я делаю что-то неправильно

+0

В вашем Global.asax, вы на самом деле регистрации маршрут под названием «X»? – womp

+0

Да, есть маршрут, зарегистрированный как routes.MapRoute ("X", "/ category/{id}/{category}", new {controller = "category", action = "List"}) – freddoo

ответ

15

Вероятно, это вызвано тем, что время вы не указали значение по умолчанию для {ID} и {} категории при регистрации маршрутов.

Url.RouteUrl("x") возвращает null, потому что нет значения для предоставленных id и категорий, а ваше определение маршрута не имеет значения по умолчанию.

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

Что касается вашего фактического URL-адреса метода Url Category(), то должен работать как можно лучше, если вы предоставляете ненулевое или пустое значение для id и категории. Я буквально скопировал код, и он работает для меня.

+2

Я установил все по умолчанию, и у меня все еще есть эта проблема. – Shimmy

0

По некоторым причинам я был еще запущен релиз-кандидат Mvc Я установил Mvc 1.0 и теперь он работает отлично

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