2012-06-06 112 views
0

我正在使用MVC构建一个用于兽医诊所的基本应用程序。该应用程序有一个屏幕,员工可以看到宠物的约会记录并添加约会。如何填充我的视图模型?

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

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

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

这ActionLink的从目前的模式向预约控制器的创建行动传递宠物的ID。宠物ID是必要的,因为这是数据库如何连接宠物和约会。

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

如何填充视图模型的属性?约会将使用约会控制器的创建视图创建,但我仍然需要在创建屏幕上显示各种宠物属性(姓名,年龄,物种等)。这些属于视图模型的Pet属性。我如何从传递到ActionLink的id去水化视图模型中的Pet对象?我不认为我需要再次访问数据库,因为我需要的所有宠物属性都在用于“宠物”控制器编辑视图的模型中

谢谢!

MVC 4 RC

回答

1

您填充从ControllerAction内的Model

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); 

} 
0

您收到服务器的响应,您的数据库连接已关闭。如果你重定向到另一个页面,你将不得不做另一个db调用来加载你需要的任何东西。