0

私はMVCを使用して、獣医クリニックで使用するための基本的なアプリケーションを構築しています。アプリケーションには、スタッフがペットの予約履歴を確認したり、予約を追加したりできる画面があります。

履歴部分は配線されており、正常に機能します。以前のすべての予定のリストが表示され、各予定に移動して詳細を確認できます。

問題は、新しい予定を追加することです。ペットコントローラーの編集ビューには、次のアクションリンクがあります。

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

このActionLinkは、ペットのIDを現在のモデルからAppointmentコントローラーのCreateアクションに渡します。それがdbがペットと予定を接続する方法であるため、ペットIDが必要です。

AppointmentコントローラーのCreateビューで使用されるビューモデルには、PetプロパティとAppointmentプロパティがあります。

ビューモデルのプロパティを設定するにはどうすればよいですか?アポイントメントは、アポイントメントコントローラーの[作成]ビューで作成されますが、[作成]画面にさまざまなペットのプロパティ(名前、年齢、種など)を表示する必要があります。これらは、ビューモデルのPetプロパティにあります。ActionLinkに渡されたIDからビューモデルのハイドレイテッドペットオブジェクトに移動するにはどうすればよいですか?必要なすべてのPetプロパティは、Petコントローラーの編集ビューに使用されるモデルにあるため、データベースに再度アクセスする必要はないと思います。

ありがとう!

MVC 4 RC

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接続が閉じられます。別のページにリダイレクトする場合は、必要なものをロードするために別のdb呼び出しを行う必要があります。

于 2012-06-06T17:27:29.617 に答える