我在Reviews Controller中有一个创建操作和一个编辑操作。
我的Create ActionLink是:
@Html.ActionLink("Create New", "Create", new { Id = Model.Id })
我的创建操作是:
[HttpGet]
public ActionResult Create(int Id)
{
return View();
}
我的编辑ActionLink是:
@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没有值或为null。所以Model.RestaurantId没有值..
如果我硬编码一个值,它的工作原理如下:
@Html.ActionLink("Back to List", "Index", "Reviews", new { id = 1 }, null)
我能做错什么.
我基本上是在尝试遵循Scott Allens的MVC4教程。我不能理解为什么会发生这种情况。我有一个评论控制器。有人能给我一些建议吗?
谢谢。
发布于 2014-03-25 05:30:03
为您的创建视图创建一个视图模型,该视图模型具有一个属性来存储源/parent id,并根据需要使用它。
public classs CreateReviewVM
{
public int SourceID { set;get;}
}
在你的GET操作中
[HttpGet]
public ActionResult Create(int Id)
{
var vm=new CreateReviewVM { SourceID=id };
return View(vm);
}
和强类型到CreateReviewVM
的创建视图(create.cshtml
)
@model CreateReviewVM
@Html.ActionLink("Back to List", "Index", "Reviews",
new { id = Model.SourceID }, null)
发布于 2014-03-25 06:05:23
事实证明,我可以使用:
@Html.ActionLink("Back to List", "Index", new { id=Request.Params["restaurantId"] }, null)
它将填充值。
https://stackoverflow.com/questions/22620898
复制相似问题