我正在开发一个MVC应用程序,其中Webgrid用于显示表列。我有一个名为Item的主表和名为Category的辅助表。我试图将Item表的列绑定到View的Webgrid中,但在绑定外部表(Category)列时在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会在没有任何问题的情况下进行绑定。
非常感谢
答案 0 :(得分:1)
感谢评论家伙。解决了这个变化的问题,就像魅力一样。
而不是这个
"<div id='Carousel"+ this.product_id +"' class='carousel slide' style='width: auto; margin: 0 auto'>"+
"<div class='carousel-inner'>"+
$.each(this.all_images, function(k,v) {
"<div class='item'>"+
" <img src='"+ v +"' alt=''>"+
"</div>"
}) +
"</div> "+
"<a class='left carousel-control' href='#Carousel"+ this.product_id +"' data-slide='prev'>‹</a>"+
"<a class='right carousel-control' href='#Carousel"+ this.product_id +"' data-slide='next'>›</a>"+
"</div>"+
"</div>"+
使用此
string.IsNullOrEmpty(item.Category.name)
所以最后我的视图修改为
(item.Category!= null)