У меня есть экран редактирования продукта. Пользователь может выбрать Продавца для Продукта. Для этого я отображаю диалоговое окно jQueryUI, которое позволяет им просматривать и выбирать поставщика. Когда пользователь выбирает Vendor, я обновляю скрытый ввод VendorID на странице, который является частью модели моей страницы. Я также обновляю несколько div-ов с подробностями о Продавце, которого они выбрали. Они предназначены только для отображения - только идентификатор необходим для сохранения выбранного Продавца.
Это все отлично работает, за исключением случаев, когда при обратной передаче возникает ошибка, и в этом случае я снова отображаю тот же вид ModelState заботится о сохранении всех моих полей формы (включая скрытый VendorID). Однако, мои div с текстом Vendor (конечно) пустые, так как они не размещены на сервере.
Сначала я пошел по пути создания скрытых полей для каждого из полей отображения моего поставщика и размещения их в модели. Затем скрытые поля сохраняются после обратной передачи, но это не решает проблему фактического повторного отображения текста на экране.
Три варианта, которые я могу придумать:
- При обратной передаче, если есть ошибка, перейдите в базу данных, выберите поставщика, используя предоставленный VendorID, и заново заполните модель текстом, который я хочу отобразить.
- Используйте RenderAction и выполняйте действие, которое отображает сведения о выбранном Продавце.
- Используйте текстовые поля только для чтения вместо div для отображения сведений о поставщике.
Ничто из этого не кажется мне очень удовлетворительным. Я чувствую, что могу упустить очевидное решение. Есть ли лучшие решения?