2012-03-27 58 views
1

因此,我有一个简单的Web应用程序,可以在其中创建用户(UserModel)并返回该用户ID。然后用户可以输入多个实例或特定项目类型的记录,在这种情况下是地理位置(LocationModel)。 LocationModel有一个UserId属性,我需要在创建位置时进行设置。将UserId传递给Model

的ActionLink的用于创建一个用户是用户/创建/ ID = [用户id]

在控制器的代码是目前。

[HttpGet] 
public ActionResult Create(string id) 
{ 
    return View(); 
} 

[HttpPost] 
public ActionResult Create(LocationModel model) 
{ 
    //CODE TO SAVE MODEL 
} 

我的问题是如何传递用户ID,以便我可以将它放入模型中,以便将两者关联起来。我将尝试在ViewBag中传递它并将其呈现在隐藏字段中,但是以为有人必须拥有比此更优雅的解决方案。提前致谢。

回答

3

UserId的模型,该模型传递给视图:

[HttpGet] 
public ActionResult Create(string id) 
{ 
    return View(new LocationModel{UserId = id}); 
} 

然后渲染UserID属性为视图中的隐藏字段,所以它会被包含在您的model参数时,表单已发布。

@model LocationModel 
@using (Html.BeginForm(...)) { 
    @Html.HiddenFor(m => m.UserId) 
    ... 
}