我正在自学asp .net mvc3。
我有一个使用各种模型和查找类型 db 的局部视图。我想保持它的强类型并在多个地方使用它,但我不知道如何实现它。下面的例子应该更好地解释它。这个问题可能会有点长,感谢您的耐心等待。
局部视图基本上给出了属性的一个小描述。'_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 并将其从“添加”传递给局部视图属性”页面。
任何帮助,将不胜感激。非常感谢!