RouteValues ​​с помощью ViewModel

У меня есть ViewModel, который очень простой объект фильтра, как это:

public class FilterViewModel
{
    public String FilterTerm { get; set; }
    public String FilterProperty { get; set; }
}

я надеялся сделать ссылку на маршрут с другой страницы на эту и передать свою FilterViewModel в создание URL-адреса маршрута в RouteValues, например:

Url.RouteUrl("myRoute", new { filter = new FilterViewModel() { FilterProperty = "Product", FilterTerm = _detail.FilterTerm }})"

Вот что делает на другой стороне

http://theurl?filter=Fully.Qualified.Namespace.FilterViewModel

Я не знаю, что я ожидал, возможно, что-то, что сериализовано в строку запроса, например:

http://theurl?filter=FilterProperty|Product,FilterTerm|ProductA

Есть ли способ сделать то, что я пытаюсь сделать из коробки? (или не из коробки)

1 ответ

Решение

Попробуйте вот так:

Url.RouteUrl(
    "myRoute", 
    new { 
        FilterProperty = "Product", 
        FilterTerm = _detail.FilterTerm 
    }
)

Не знаю, как выглядит ваша конфигурация маршрутизации, но это может привести к чему-то http://theurl?FilterProperty=Product&FilterTerm=ProductA, Для чего-то более экзотического, например, URL-адресов, которые вы указали в своем вопросе, вам придется написать собственных помощников. Ничего стандартного.

Другие вопросы по тегам