0

我正在使用 MVC 构建一个用于兽医诊所的基本应用程序。该应用程序有一个屏幕,工作人员可以在其中查看宠物的预约历史并添加预约。

历史部分已连接并且工作正常。我会看到所有先前约会的列表,并且可以导航到每个约会以查看其详细信息。

问题是添加一个新约会。Pet 控制器的 Edit 视图具有以下操作链接:

@Html.ActionLink("Add Appointment", "Create", "Appointment", new { id = Model.Id }, null)

此 ActionLink 将 Pet 的 Id 从当前模型传递到 Appointment 控制器的 Create 操作。宠物 ID 是必要的,因为这就是数据库连接宠物和约会的方式。

Appointment 控制器的 Create 视图中使用的视图模型具有 Pet 和 Appointment 属性。

如何填充视图模型的属性?将使用 Appointment 控制器的 Create 视图创建 Appointment,但我仍然需要在 Create 屏幕上显示各种 Pet 属性(名称、年龄、物种等)。这些在视图模型的 Pet 属性中。如何从传递给 ActionLink 的 id 转到视图模型中的水合 Pet 对象?我认为我不需要再次访问数据库,因为我需要的所有 Pet 属性都在用于 Pet 控制器的 Edit 视图的模型中

谢谢!

MVC 4 遥控

4

2 回答 2

1

Model从一个Controller Action.

public ActionResult Create(string id){

   MyModel myModel = new MyModel();
   myModel.Foo = "Bar";
   return View(myModel);

}

您可以提取它以使用在您的控制器内部发生的服务调用来填充服务层。然后它将传回一个模型,该模型将被发送到视图。

public ActionResult Create(string id){

   // Some service inteface to interact with the data store to populate model
   MyModel myModel = service.GetMyModel();
   return View(myModel);

}
于 2012-06-06T17:23:41.393 回答
0

当您收到来自服务器的响应时,您的数据库连接已关闭。如果您重定向到另一个页面,则必须进行另一个 db 调用以加载您需要的任何内容。

于 2012-06-06T17:27:29.617 回答