Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何填充视图模型?_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 如何填充视图模型?

Asp.net mvc 如何填充视图模型?,asp.net-mvc,Asp.net Mvc,我正在使用MVC构建一个用于兽医诊所的基本应用程序。该应用程序有一个屏幕,工作人员可以在其中查看宠物的预约历史并添加预约 历史部分已连接,工作正常。我会看到以前所有约会的列表,并可以导航到每个约会以查看其详细信息 问题是添加新的约会。Pet控制器的编辑视图具有以下操作链接: @Html.ActionLink("Add Appointment", "Create", "Appointment", new { id = Model.Id }, null) 此ActionLink将宠物Id从当前模型

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

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

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

@Html.ActionLink("Add Appointment", "Create", "Appointment", new { id = Model.Id }, null)
此ActionLink将宠物Id从当前模型传递到约会控制器的创建操作。宠物Id是必需的,因为db就是通过这个连接宠物和约会的

约会控制器的“创建”视图中使用的视图模型具有Pet和约会属性

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

谢谢


MVC4RC

您可以从
控制器
操作
中填充
模型

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

}

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