Похоже, это вызвано тем, что вы не указали значение по умолчанию для {id} и {category} при регистрации ваших маршрутов.
Url.RouteUrl ("x")
вернет null, потому что не указаны значения для идентификатора и категории, а в определении маршрута нет значения по умолчанию.
Я думаю, что вы найдете, если обновите свой запись маршрута, чтобы указать значение по умолчанию для идентификатора и категории, это решит вашу проблему. В качестве альтернативы, если вы уверены, что всегда предоставляете значение для идентификатора и категории, вы можете обойтись без него.
Что касается вашего фактического вспомогательного метода URL-адреса Category (), то должен ] будет работать нормально как есть, если вы предоставляете ненулевое или пустое значение для идентификатора и категории. Я буквально скопировал код, и он у меня работает.
По какой-то причине я все еще использовал кандидат на выпуск mvc Я установил mvc 1.0, и теперь он работает нормально