【发布时间】:2012-08-28 18:13:59
【问题描述】:
我正在自学asp .net mvc3。
我有一个使用各种模型和查找类型 db 的局部视图。我想保持它的强类型并在多个地方使用它,但我不知道如何实现它。 下面的例子应该更好地解释它。这个问题可能会有点长,感谢您的耐心等待。
局部视图基本上给出了属性的小描述。 “_PropertyExcerptPartial”的 sn-p 如下:
@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; }
}
本模型查找的二二数据库如下:
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 并将其传递给局部视图“添加的属性”页面。
任何帮助将不胜感激。非常感谢!
【问题讨论】:
标签: asp.net-mvc-3 asp.net-mvc-partialview