参数错误的空条目来自哪里?

时间:2016-06-03 17:37:19

标签: asp.net-mvc-4 url-parameters

  

参数字典包含参数的空条目   'restaurantId'为非可空类型'System.Int32'的方法   'System.Web.Mvc.ActionResult Index(Int32)'中   'OdeToFood.Controllers.ResturantReviewsController'。可选的   参数必须是引用类型,可空类型或声明为   一个可选参数。

仅当我点击返回列表按钮

时才会出现错误

我收到与patron posting here相同的错误。我已经尝试了该帖子上的所有建议,但我可以添加一些未在该问题上列出的其他参考点。我注意到,当我将鼠标悬停在“返回列表”链接上时,屏幕底部的网址不包含restaurantId,这让我质疑为什么/如何在Pluralsight教程上工作。

enter image description here

我甚至将所有文件替换为提供的练习文件中的文件,我也得到了同样的错误。

以下是我认为导致错误的代码:

[HttpPost]
    public ActionResult Edit(RestaurantReview review)
    {
        if (ModelState.IsValid)
        {
            _db.Entry(review).State = EntityState.Modified;
            _db.SaveChanges();
            return RedirectToAction("Index", new { id = review.RestaurantId   });
        }
        return View(review);
    }

1 个答案:

答案 0 :(得分:0)

对于您发布的代码(它有帮助但不多,应该发布视图的代码和创建/编辑/评论操作代码),我的假设如下:

发生的事情是你有一个行动,希望收到一个restaurantId(类型为int,这意味着,不可为空)但它没有收到restaurantId的任何值,导致该异常。也许,就你所说的和查看代码而言,正是评论行动要求restaurantId没有提供它。如果评论操作有一个restaurantId作为参数,您应该使用该ID创建“返回链接”。

希望我有所帮助。

此致