これはasp.net mvc3プロジェクト用です。私は2つのビューとそれに対応するビューモデルを持っています。別のビューで使用される基本ビューモデルから派生したビューモデルを使用するMVC
Home.aspxはのviewmodel HomeVM
HomeChild.aspxがHomeChildVMとしてのviewmodelを有しています。
今すぐHomeChildVMはHomeVMから派生し、いくつかのプロパティがあり、独自のビューで使用されます。私のコントローラには、ホームビューを返すアクションメソッドとHomeChildビューを返すアクションメソッドがあります。どちらのアクションメソッドも、タイプをHomeVMとして返す1つのビジネスメソッドを呼び出します。その後、私のアクションメソッドは、aspxビューに同じを返します。
さて、代わりに別のビジネスメソッドを記述し、ちょうど別のviewmodelタイプすなわちHomeChildVMを返すために、もう一度、すべてのコードを繰り返すことで、私はそうのようなものでobjHomeChildVM 1にobjHomeVMのプロパティを割り当てていますreturn View(objHomeVM);
:
objHomeChildVM.prop1 = objHomeVM.prop1;
objHomeChildVM.prop2 = objHomeVM.prop2;
し、それを返す:
return View(objHomeChildVM);
は、プロパティを一つずつ割り当てることによってよりも、これを行うには良い方法はありますか?これを行う唯一の方法でない限り、これはあまりにも原始的な方法だと私は感じています。
私はHomeVMに、私はHomeChildVMだけHomeChild.aspxページに固有であるた余分なプロパティを使用できるように文句を言わないことに変更した場合HomeChild.aspx現在このページディレクティブ
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<HomeChildVM>" %>
を持っています。
これについてのご意見はありますか?
ありがとうございます...
この質問にはASP.NET MVC3というタグが付けられましたが、以前のバージョンのMVCを使用しているようですか?これらのタグも追加してみてください。 –
そのMVC3プロジェクト – user20358
MVC3プロジェクトの場合は、.cshtmlで終わるビューを使用することをお勧めします。ビューの開始ページを使用して、ビューのマスターページを指定します。コードは違って見えますが、@以外は<%%>を使用しないでください。 –