Я разрабатываю приложение MVC, в котором Webgrid используется для отображения столбцов таблицы. У меня есть одна первичная таблица с именем Item и вторичная таблица с именем Category. Я пытаюсь связать столбцы таблицы Item в Webgrid View, но получаю исключение внутри webgrid, при этом привязывая столбец внешней таблицы (категории).Как обрабатывать null исключение для значений столбцов, возвращаемых контроллером в webgrid?
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException
Модель
public class ItemModel
{
public long id { get; set; }
public Nullable<long> category_id { get; set; }
public virtual Category Category { get; set; }
}
Контроллер
List<ItemModel> lstItemModel = new List<ItemModel>();
List<Item> lstItemss = db.Items.ToList();
lstItemss.ForEach(x =>
{
ItemModel stuModel = new ItemModel();
stuModel.id= x.id;
stuModel.Category = x.Category;
lstItemModel.Add(stuModel);
});
return View(lstItemModel);
Просмотр в WebGrid У меня есть
dataGrid.Column("Category", "Category", format: (Item) => string.IsNullOrEmpty(Item.Category.name)?string.Empty:Item.Category.name)
Вы можете видеть в представлении Я передаю null исключение, но все же он генерирует исключение в поле зрения Item.Category.name, где в Item.id происходит связывание без каких-либо проблем.
Большое спасибо
в режиме отладки смотрите значение Item.Category, а затем поделиться с us –
Вы не обрабатываете случай, когда 'Category' является' null' - 'string.IsNullOrEmpty (Item.Category.name)' will thr ow исключение, если значение 'Category' равно' null', потому что вы не можете получить доступ к правилу 'name' из' null') –