Как связать поля формы со свойствами модели с различными именами?

У меня есть поисковая форма, для которой я хочу использовать короткие параметры строки запроса (например? q=value&s=whatever&c=blah) и я хотел бы использовать привязку модели MVC для получения тех параметров в мое действие контроллера.

Я могу создать тип, который зеркально отражает эти краткие названия, но у меня был бы тип, который имеет более разумные имена (например, q = Запрос, s = SortOrder, c = Сыр). Существует ли хороший простой способ, которым я могу сделать это, такое как атрибуты на моей модели?

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

Начиная с модели обязательная инфраструктура использует TypeDescriptors, я предполагаю, что мог указать пользовательский дескриптор типа на своей модели, которая возвращает свойства с различными именами, по-видимому, от атрибутов на самой модели - по крайней мере, это было бы применимо.

Так или иначе я надеялся, что кто-то уже сделал это?

1
задан citizenmatt 22 February 2010 в 17:53
поделиться

1 ответ

Написать свою собственную подшивку модели - это излишне, но это способ сделать это. Привязка в MVC использует отражение, поэтому вам нужно совпадение 1: 1.

Другой способ - написать небольшой класс, в котором есть поля, которые выглядят так, как вы хотите, а затем привязать к нему представление.

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

2
ответ дан 3 September 2019 в 01:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: