Asp.net mvc 对象引用未设置为对象的实例。~在@Html.ActionLink期间
我在评论控制器中有一个创建操作和一个编辑操作 我的创建操作链接是:Asp.net mvc 对象引用未设置为对象的实例。~在@Html.ActionLink期间,asp.net-mvc,actionlink,Asp.net Mvc,Actionlink,我在评论控制器中有一个创建操作和一个编辑操作 我的创建操作链接是: @Html.ActionLink("Create New", "Create", new { Id = Model.Id }) @Html.ActionLink("Edit", "Edit", new { id=item.Id } 我的创建操作是: [HttpGet] public ActionResult Create(int Id) { return View(); }
@Html.ActionLink("Create New", "Create", new { Id = Model.Id })
@Html.ActionLink("Edit", "Edit", new { id=item.Id }
我的创建操作是:
[HttpGet]
public ActionResult Create(int Id)
{
return View();
}
我的编辑操作链接是:
@Html.ActionLink("Create New", "Create", new { Id = Model.Id })
@Html.ActionLink("Edit", "Edit", new { id=item.Id }
我的编辑是:
[HttpGet]
public ActionResult Edit(int id)
{
var model = _db.Reviews.Find(id);
return View(model);
}
在我的编辑视图中,我有一个名为“返回列表”的操作链接,它是:
@Html.ActionLink("Back to List", "Index", new {id = Model.RestaurantId}, null)
它起作用了,带我回到我的家乡
在我的create视图中,当我放置相同的东西时,我会得到标题中的错误消息。该Id没有值或为空。。因此Model.RestaurantId没有值
如果我硬编码一个值,它的工作方式如下:
@Html.ActionLink("Back to List", "Index", "Reviews", new { id = 1 }, null)
我可能做错了什么
我基本上是在学习Scott Allens的MVC4教程。
我无法理解为什么会发生这种情况。我有一个管理员。有人能给我一些建议吗
谢谢。为您的“创建”视图提供一个viewmodel,其中包含一个用于存储源/父id的属性,并根据需要使用该属性
public classs CreateReviewVM
{
public int SourceID { set;get;}
}
在你的行动中
[HttpGet]
public ActionResult Create(int Id)
{
var vm=new CreateReviewVM { SourceID=id };
return View(vm);
}
以及您的创建视图(create.cshtml
),它是强类型的CreateReviewVM
@model CreateReviewVM
@Html.ActionLink("Back to List", "Index", "Reviews",
new { id = Model.SourceID }, null)
事实证明,我可以使用:
@Html.ActionLink("Back to List", "Index", new { id=Request.Params["restaurantId"] }, null)
它将填充值 好的…一个视图模型。我会检查一下,按照你的建议做,然后再给你回复……但与此同时,你能告诉我为什么我在编辑视图中的“返回列表”有效,但在创建视图中却无效?谢谢。。。