MVC Scaffolding Error: "Value cannot be empty. Parameter name: source"

I followed the instructions in this post , but when I try to add a product, I get this error:

Server Error in '/' Application.
--------------------------------------------------------------------------------

Value cannot be null.
Parameter name: source 
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.ArgumentNullException: Value cannot be null.
Parameter name: source

Source Error: 


Line 63: </div>
Line 64: <div class="editor-field">
Line 65:     @Html.DropDownListFor(model => model.CategoryId, ((IEnumerable<GAM.Models.Category>)ViewBag.PossibleCategories).Select(option => new SelectListItem {
Line 66:         Text = (option == null ? "None" : option.Name), 
Line 67:         Value = option.Id.ToString(),

Controller Code:

public ActionResult Create()
{
    ViewBag.PossibleCategory = context.Categories;
    return View();
} 

//
// POST: /Product/Create

[HttpPost]
public ActionResult Create(Product product)
{
    if (ModelState.IsValid)
    {
        context.Products.Add(product);
        context.SaveChanges();
        return RedirectToAction("Index");  
    }

    ViewBag.PossibleCategory = context.Categories;
    return View(product);
}

And view code:

 @Html.DropDownListFor(model => model.CategoryId, ((IEnumerable<GAM.Models.Category>)ViewBag.PossibleCategories).Select(option => new SelectListItem {
    Text = (option == null ? "None" : option.Name), 
    Value = option.Id.ToString(),
    Selected = (Model != null) && (option.Id == Model.CategoryId)
}), "Choose...")
@Html.ValidationMessageFor(model => model.CategoryId)
+5
source share
1 answer

Your problem is this:

You assign this property to Controller:

ViewBag.PossibleCategory = context.Categories;

Then in, Viewyou try to read this dynamic property ViewBag:

ViewBag.PossibleCategories

? ... , ViewBag # 4 dynamic. ViewBag.PossibleCategories . ViewBag, ViewBag.PossibleCategories, : Value cannot be null. Parameter name: source

, :

ViewBag.PossibleCategories = context.Categories;
+11

All Articles