Как создать ActionLink со свойствами для модели представления

У меня есть ViewModel со свойством Filter, у которого есть много свойств, которые я использую для фильтрации своих данных

Пример:

class MyViewModel : IHasFilter
{
     public MyData[] Data { get; set; }
     public FilterViewModel Filter { get; set; }
}

class FilterViewModel
{
    public String MessageFilter { get; set; }
    //etc.
}

Это прекрасно работает при использовании моего View. Я могу установить свойства Model.Filter, и они передаются контроллеру. Сейчас я пытаюсь создать ActionLinkсо строкой запроса, которая работает с указанным выше форматом.

Строка запроса, сгенерированная моим представлением выше, выглядит следующим образом:

http://localhost:51050/?Filter.MessageFilter=Stuff&Filter.OtherProp=MoreStuff

Мне нужно сгенерировать ActionLink в другом представлении для каждой строки в сетке, которая ведет к представлению выше.

Я пробовал:

Html.ActionLink(
    item.Message,
    "Index",
    "Home",
    new { Filter = new { MessageFilter = item.Message, }, },
    null);

Я также пытался установить для аргумента routeValuesзначение:

new MyViewModel { Filter = new FilterViewModel { MessageFilter = item.Message, }, },

Но они не генерируют строку запроса, подобную приведенной выше.

6
задан Craig 5 April 2012 в 12:52
поделиться