将UserId传递给模型

时间:2012-03-27 16:40:32

标签: c# .net asp.net-mvc viewdata

所以我有一个简单的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中传递它并在隐藏字段中渲染它,但是我认为有人必须拥有比这更优雅的解决方案。提前谢谢。

1 个答案:

答案 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)
    ...
}