Передать вложенные свойства в asp.net mvc actionlink - PullRequest
4 голосов
/ 30 ноября 2011

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

public class ClassListVM
{
    public ClassListVM()
    {
        Filter = new ClassFilterModel();
    }

    public ClassFilterModel Filter { get; set; }
    public PagedList<Class> Classes { get; set; }
}

public class ClassFilterModel
{
    public int? TermId { get; set; }
    public int? SubFormId { get; set; }
    public int? FormId { get; set; }
}

public ActionResult Index(ClassListVM model)
{
    model.Classes = classService.GetClasses(model.Filter);
    return View(model);
}

Теперь я хочу создать URL-адрес, подобный этому: /Classes?Filter.SubFormId=1. Как получить часть Filter в URL, используя этот код:

<a href="@Url.Action("Details", "Classes", new {Filter.TermId = Model.TermId, Filter.SubFormId = subForm.SubFormId})">go</a>

Как видите, Filter здесь нельзя использовать.

1 Ответ

1 голос
/ 30 ноября 2011

Теоретически, вы можете построить это так:

<a href="@Url.Action("Details", "Classes")?Filter.TermId=@Model.TermId&amp;Filter.SubFormId=@subForm.SubFormId">go</a>

Что-то в этом роде;по сути, вставьте строку запроса в разметку клиента и добавьте только параметры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...