Пустой тег обычно означает, что на заднем плане было какое-то исключение.
Пожалуйста, посмотрите в /App_Data/Logs.
Я вижу, чего ты хочешь достичь, но ты должен был сделать это по-другому.
Рекомендуется использовать событие OnLoading
обработчика содержимого для заполнения свойств детали данными из разных источников, например. сеанс. Сохранение всей детали в сеансе наверняка в какой-то момент может привести к проблемам, особенно когда деталь привязана к записи базы данных.
Обработчики должны выполнять все подготовительные операции.
Драйверы должны содержать логику, связанную с отображением / редактором, только на готовой детали (например, выбор правильной формы, подготовка модели вида). Поэтому большую часть времени водители должны быть очень простыми.
Так что в вашем случае шаги будут:
- Создать класс CartHandler , производный от ContentHandler
- Используйте событие OnLoading в обработчике, созданном в 1. , чтобы гидрировать свойство / свойства данными сеанса.
Пример: * 1 034 *
public class CartHandler : ContentHandler
{
public CartHandler(IHttpContextAccessor context)
{
this.OnLoaded<UnpersistedPart>(ctx, part =>
{
var session = context.GetCurrent().Session;
// Here comes loading data from session
part.MyProperty = session["Something"];
// ........
});
}
}
Это событие будет вызываться каждый раз, когда загружается элемент содержимого, содержащий его, перед его отображением. Таким образом, в драйвере вы получите полностью заполненную часть.
После добавления обработчика метод отображения драйвера будет выглядеть намного проще:
protected override DriverResult Display(UnpersistedPart part, string displayType, dynamic shapeHelper)
{
return ContentShape("Parts_Jumpstart_Unpersisted",
() => shapeHelper.Parts_Jumpstart_Unpersisted(ContentPart: part));
}