Я пытаюсь создать пользовательский элемент управления в ASP.NET MVC. То, чего я хочу избежать, - это смешивать представление (html) и код (C #) в этих элементах управления.
После нескольких часов поисков в Google и борьбы с этой проблемой я наконец-то подумал о создании вспомогательных методов, использующих представление ASP. Механизм считал класс ViewPage.
Я могу создать экземпляр класса и даже загрузить шаблон ascx, используя методы LoadControl и LoadTemplate, но проблема в том, что когда я передаю объект ViewData экземпляру класса ViewPage, я не вижу ViewData в ViewPage и я получаю эту ошибку:
ViewUserControl '~ / Components / Controls / EditableLabel / Views / EditableLabel.ascx' не может найти IViewDataContainer. ViewUserControl должен находиться внутри ViewPage, ViewMasterPage или другого ViewUserControl.
Обычно конечный эффект, которого я хочу достичь, - это загрузка элементов управления с некоторыми параметрами, эти параметры должны быть доступны для чтения в шаблоне (ascx).
пример:
<% Html.EditableLabel(Writer, "memberName", "Name", "Antonio", "/identity/updateProperty", "memberName"); %>
- Есть ли способ передать ViewData в экземпляр ViewPage, который я создаю?
- Есть ли более умный способ создания пользовательских элементов управления / виджетов в ASP.NET MVC?
Заранее спасибо