I keep getting the following the error message when I try to return the following view.


Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:


Line 13:  <tr>
Line 14:   <td>
Line 15:    @(Html.Telerik().Grid<ProductModel>(Model.Products.Data)
Line 16:                  .Name("products-grid")
Line 17:          .Columns(columns =>


Here is my View and Action method so far

Method
[HttpPost, ActionName("Product")]
        public ActionResult ConcordAddMultipleProductsToCart(Product product, bool preparePriceModel = true, bool preparePictureModel = true, int? productThumbPictureSize = null)
        {
            var products = _productService.SearchProducts
                (0, 0, false, 0, 0, 0, string.Empty, true,
                   _workContext.WorkingLanguage.Id, new List<int>(), ProductSortingEnum.Position, 0, 0, false);

            var model = new ProductModel();
            model.Products = new GridModel<ProductModel>
            {
                Data = products.Select(x =>
                    {
                        var productModel = x.ToModel();
                        model.Id = x.Id;
                        model.CCCPack = x.CCCPack;
                        model.CCCStockCode = x.CCCStockCode;
                        model.CCCMRP = x.CCCMRP;

                        if (preparePriceModel)
                        {
                            model.ProductPrice = PrepareProductPriceModel(product);
                        }

                        if (preparePictureModel)
                        {
                            int pictureSize = productThumbPictureSize.HasValue ? productThumbPictureSize.Value : _mediaSetting.ProductThumbPictureSize;
                            var picture = product.GetDefaultProductPicture(_pictureService);
                            if (picture != null)
                            {
                                model.DefaultPictureModel.ImageUrl = _pictureService.GetPictureUrl(picture, pictureSize, true);
                                model.DefaultPictureModel.FullSizeImageUrl = _pictureService.GetPictureUrl(picture);
                            }
                            else
                            {
                                model.DefaultPictureModel.ImageUrl = _pictureService.GetDefaultPictureUrl(pictureSize);
                                model.DefaultPictureModel.FullSizeImageUrl = _pictureService.GetDefaultPictureUrl();
                            }
                            model.DefaultPictureModel.Title = string.Format(_localizationService.GetResource("Media.Product.ImageLinkTitleFormat"), model.Name);
                            model.DefaultPictureModel.AlternateText = string.Format(_localizationService.GetResource("Media.Product.ImageAlternateTextFormat"), model.Name);
                        }
                    return productModel;
                    }),
                Total = products.TotalCount
            };
            return View();
        }


View

@model Nop.Web.Models.Catalog.ProductModel
@using Nop.Web.Models.Catalog
@using Nop.Core.Infrastructure
@using Telerik.Web.Mvc.UI


@using (Html.BeginForm())
{
<table class="adminContent">
<tr>
  <td>
   @(Html.Telerik().Grid<ProductModel>(Model.Products.Data)
                 .Name("products-grid")
         .Columns(columns =>
                 {

                     columns.Bound(x => x.DefaultPictureModel)
                       .Template(
                       @<text>
                       <a href ="javascript:OpenWindow('@Url.RouteUrl("Product", new { productId = Model.Id, SeName = Model.SeName, formId = "Product-Form" }))', 700, 400, true);" />
                       <img alt="@Model.DefaultPictureModel.AlternateText" src="@Model.DefaultPictureModel.ImageUrl" title="Image" />
                       </text>
                       )
                     .ClientTemplate("<img alt='<#= Id #>'src='<#= DefaultPictureModel.ImageUrl #>'")
                         .Title(T("Image").Text)
                         .Width(50);
                     columns.Bound(x => x.Name)
                         .Title(T("Product").Text)
                         .Width(50);
                     columns.Bound(x => x.CCCStockCode)
                         .Title(T("Stockcode").Text)
                         .Width(50);
                     columns.Bound(x => x.CCCPack)
                         .Title(T("Pack").Text)
                         .Width(50);
                     columns.Bound(x => x.CCCMRP)
                         .Title(T("MRP").Text)
                         .Width(50);
                      
                 })
          .DataBinding(dataBinding => dataBinding.Ajax().Select("AddMultipProductsToCart", "Product")));


      
                    
      
  @(Html.Telerik().Grid<ProductModel.ProductVariantModel>()
                .Name("products-grid")
        .Columns(columns =>
                 {

                     columns.Bound(pv => pv.ProductVariantPrice).Width(100)
                        .Title(T("Price").Text)
                        .Width(50);
                      
                     columns.Bound(pv => pv.AddToCart.EnteredQuantity).Width(50)
                        .Template
                        (
                        @<text>
                        <input type="text" id="quantity_@(Model.Id)" size="1" />
                        </text>
                        )
        .ClientTemplate("< input type='text' size='1' id='<#=quantity_Id#>'/>");
                 }))

  </td>
</tr>
<tr>
<td>
  <input type="button" value="@T("Order")" class="productlistaddtocartbutton" onclick="setLocation('@(@Url.RouteUrl("AddProductToCartQty", new { productId = Model.Id }))/' + $('#quantity_@(Model.Id)').val())" />
</td>
</tr>
</table>
  

}


All help highly appreicated.

Richard