所以我有一个简单的Web应用程序,我可以在其中创建用户(UserModel)并返回该用户ID。然后,用户能够输入特定项目类型的多个实例或记录,在这种情况下是地理位置(LocationModel)。 LocationModel有一个UserId属性,我需要在创建位置时设置它。
用于创建用户的ActionLink是User / Create / id = [userid]
目前控制器中的代码。
[HttpGet]
public ActionResult Create(string id)
{
return View();
}
[HttpPost]
public ActionResult Create(LocationModel model)
{
//CODE TO SAVE MODEL
}
我的问题是如何传递用户ID,以便我可以将其放入模型中以便将两者联系起来。我打算尝试在ViewBag中传递它并在隐藏字段中渲染它,但是我认为有人必须拥有比这更优雅的解决方案。提前谢谢。
答案 0 :(得分:3)
将UserId
放在模型上,并将模型传递给视图:
[HttpGet]
public ActionResult Create(string id)
{
return View(new LocationModel{UserId = id});
}
然后将UserId属性渲染为View中的隐藏字段,以便在表单发布时它将包含在model
参数中。
@model LocationModel
@using (Html.BeginForm(...)) {
@Html.HiddenFor(m => m.UserId)
...
}