一个称为PropertyModel
,另一个称为PropertyTypeModel
。 PropertyModel
包含PropertyTypeModel
,您可以在下面看到:
public class PropertyModel {
public int PropertyID { get; set; }
public PropertyTypeModel PropertyType { get; set; }
[DataType(DataType.Text)]
[DisplayName("Property name")]
public string PropertyName { get; set; }
}
PropertyTypeModel
就是这样:
public class PropertyTypeModel {
public int PropertyTypeID { get; set; }
[DataType(DataType.Text)]
[DisplayName("Property type")]
public string PropertyType { get; set; }
public static List<SelectListItem> PropertyTypeSelectList()
{
using (Properties dataContext = new Properties())
{
return (from pt in dataContext.PropertyTypes
select new SelectListItem
{
Value = pt.PropertyTypeID.ToString(),
Text = pt.PropertyTypeName
}).ToList();
}
}
}
PropertyTypeModel
从数据库读取,并创建一个列表(现在)两个值,“house”和“apartment”。在视图中,我需要从dropdownlist
中选择属性类型,我能够这样做的唯一方法是将列表直接硬编码到视图中,如下所示:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<PropertyApplication.Models.PropertyModel>" %>
....
....
<%= Html.DropDownListFor(m => m.PropertyType.PropertyType, new[] {
new SelectListItem { Text = "House",
Value = "House" },
new SelectListItem { Text = "Apartment",
Value = "Apartment" }
}
, "Choose one") %>
我不希望这样,因为在数据库中进行的任何更改(例如添加其他类型的属性)将意味着在视图中重新编码列表。此外,这个代码是这样给我的,我需要使用PropertyTypeModel
。
我的问题是:如何使用dropdownlist
PropertyTypeModel
填充PropertyTypeSelectList
for?我无法找到有关如何实现这一目标的任何信息。如何将类型模型“读取”到属性模型中?
请帮助,我已经在这几个小时了。如果可能的话,这样做的代码就会很棒。
答案 0 :(得分:1)
你试过吗
<%= Html.DropDownListFor(m => m.PropertyType.PropertyType, Model.PropertyType.PropertyTypeSelectList(), "Choose one") %>