これは、asp.net mvc3 プロジェクト用です。2 つのビューと、それぞれに対応するビューモデルがあります。
Home.aspx にはビューモデル HomeVM があります
HomeChild.aspx には、HomeChildVM としてのビューモデルがあります。
現在、HomeChildVM は HomeVM から派生しており、独自のビューで使用されるいくつかのプロパティがあります。コントローラーには、Home ビューを返す 1 つのアクション メソッドと、HomeChild ビューを返す別のアクション メソッドがあります。これらのアクション メソッドは両方とも、型を HomeVM として返す 1 つのビジネス メソッドを呼び出します。次に、アクション メソッドは同じものを aspx ビューに返します。
return View(objHomeVM);
ここで、別のビジネス メソッドを記述し、別のビューモデル タイプ、つまり HomeChildVM を返すためだけにすべてのコードを最初からやり直す代わりに、次のように objHomeVM のプロパティを 1 つずつ objHomeChildVM に割り当てています。
objHomeChildVM.prop1 = objHomeVM.prop1;
objHomeChildVM.prop2 = objHomeVM.prop2;
そしてそれを返します:
return View(objHomeChildVM);
プロパティを 1 つずつ割り当てるよりも、これを行うためのより良い方法はありますか? これが唯一の方法でない限り、これはあまりにも原始的な方法だと思います。
HomeChild.aspx には現在、このページ ディレクティブがあります。
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<HomeChildVM>" %>
それを HomeVM に変更すると、HomeChildVM が持つ、HomeChild.aspx ページにのみ固有の追加のプロパティを使用できなくなります。
これについて何か考えはありますか?
御時間ありがとうございます...