Как сохранить переменную Func <T>в HtmlHelper (Html.HiddenFor ()), чтобы отправить ее обратно на сервер - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь сохранить переменную Func<T> или Expression<Func<T>> в Html.HiddenFor () внутри представления Razor, чтобы отправить его обратно в контроллер, но он не работает должным образом, так какон сохраняется в виде строки и возвращается как ноль в контроллер.

Мне это нужно, чтобы получить доступ к определенным свойствам модели и установить их с другими данными, передаваемыми в контроллер одновременно.

Я не могу найти свойства сеттера, которые могу сохранить и использовать обратнов контроллере для создания переменной Func<object> (как я это делал бы с любым сложным объектом).

Например, я отправляю в представление модель, содержащую их список:

new DataConflict<AppointmentEditModel, dynamic, dynamic>(x => x.StartDate, null, Start, appointment.StartDate)

затем я сохраняю лямбда-выражение x => x.StartDate, которое представляет собой Expression<Func<T>>, вот так (кажется, что оно хранится в виде строки):

@Html.HiddenFor(m => m.Appointment.ConflictList[i].DataProperty)

И когда оно возвращается к контроллерупосле отправки все свойства, содержащие лямбда-выражения, являются нулевыми.

Я ожидаю, что контроллер получит обратно объект, содержащий лямбда-выражение, отправленный в представление.

Спасибо.

1 Ответ

0 голосов
/ 25 сентября 2019

Как предположил @Van, я искал способ сериализации данных и узнал, что это совсем нехорошо, сериализировать лямбда-выражения.

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

Надеюсь, эта помощь.

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