私は自分自身にasp .net mvc3を教えています。
さまざまなモデルとルックアップ タイプのデータベースを使用する部分ビューがあります。強く型付けしたまま複数の場所で使用したいのですが、実装方法がわかりません。以下の例は、それをよりよく説明するはずです。この質問は少し長くなる可能性があります。ご理解のほどよろしくお願いいたします。
部分ビューは、基本的にプロパティの簡単な説明を提供します。「_PropertyExcerptPartial」のスニペットを以下に示します。
@model Test.ViewModels.PropertyExcerptViewModel
<div>
<h3>@Html.DisplayFor(model => model.Property.NoOfBedrooms) bedroom @Html.DisplayFor(model => model.FurnitureType.FurnitureTypeDescription) flat to Rent </h3>
…
</div>
この部分ビューを強く型付けしたままにして、複数の場所で使用したいと考えています。強く型付けされるモデルは次のとおりです。
public class PropertyExcerptViewModel
{
public Property Property { get; set; }
public FurnitureType FurnitureType { get; set; }
}
このモデルが参照する 2 つのデータベースは次のとおりです。
public class Property
{
public int PropertyId {get; set; }
...
public int NoOfBedrooms {get; set;}
public int FurnishedType { get; set; }
...
}
public class FurnishedType
{
public int FurnishedTypeId { get; set; }
public string FurnishedTypeDescription { get; set; }
}
家具付きタイプ データベースは、基本的に次のデータを含むルックアップ テーブルです。 1 - 家具付き 2 - 家具なし 3 - 一部家具付き 4 - 交渉可能
説明の検索に使用できるプロパティ データベースに int 値のみを格納するという点で、このような検索が多数あります。これらのデータベースはプロパティ データベースにリンクされておらず、家具タイプの値は関数 GetFurnitureType(id) を介して読み取られます。Property.FurnitureType の格納された int 値を ID として渡します。
ただし、これらの複数のモデルをビューから部分ビューに渡す方法がわからないため、この部分ビューを使用しようとすると問題が発生します。
「追加されたプロパティ」ページを作成しようとしているとします。このページには、基本的に、ログインしたユーザーが追加したプロパティが一覧表示されます。これを容易にするために、特定のユーザーが追加したプロパティを返す GetAddedProperties(userId) という別の関数を作成しました。「追加されたプロパティ」ビューでは、foreach 関数を呼び出して、GetAddedProperties によって返されたすべてのプロパティをループし、_PropertyExcerptPartial を表示できます。このようなもの:
<div>
@foreach (var item in //Not sure what to pass here)
{
@Html.Partial("_PropertyExcerptPartial",item)
}
</div>
ただし、部分ビューを使用して情報を表示することはできません。これは、プロパティ データベースに格納されている家具タイプの int 値を表示するためです。また、対応する FurnitureTypeDescription を取得して、「追加されたプロパティのページ。
どんな助けでも大歓迎です。どうもありがとう!