【发布时间】:2011-08-19 06:09:15
【问题描述】:
我是 .net 和 mvc 平台的新手,我有很多 int 字段来存储一些下拉列表值,由于数据库大小,我创建了字段 int 类型,所以我通过这种方法实现下拉列表,它可以工作但是我不知道在 viewmodel 上存储值文本是否是正确的解决方案,这里是示例代码:
对不起,我的英语很抱歉,如果您有什么不明白的地方,请告诉我。
模型属性.cs
[Required(ErrorMessage = "Bu alan gereklidir!")]
[Display(Name = "Şehir"), MaxLength(60)]
public int City { get; set; }
propertymgmtviewModel
public Property Property { get; set; }
public IEnumerable<Property> Properties { get; set; }
public IEnumerable<SelectListItem> Cities
{
get
{
return new[]
{
new SelectListItem { Text="--Select One---", Value = "", Selected=true},
new SelectListItem { Text="Chicago", Value = "1"},
new SelectListItem { Text="New York", Value = "2"},
new SelectListItem { Text="Zimbabwe", Value = "3"},
};
}
用于编辑视图页面的视图:
@Html.DropDownListFor(model => model.Property.City,
new SelectList(Model.Cities,"Value","Text"))
显示值视图页:
<td>
@(item.City != null ?
Model.Cities.SingleOrDefault(c => c.Value == item.City.ToString()).Text
: "")
</td>
【问题讨论】:
-
不确定我是否理解您的问题 - 您是在问您的解决方案在架构上是否合理?还是您实际上在代码中遇到错误?关于将城市存储在视图模型中,为什么不创建一个城市模型,将城市存储在数据库中,然后将城市作为原始模型上的虚拟属性公开 - 这样你就可以保留“数据”(即城市) 在它所属的数据库中。
-
是的,我问的是它在架构上是否正确,有 30 多个选择列表和 400 多个文本值,所以我问哪种方式存储在 dbase 或 viewmodel 中更准确?跨度>
标签: c# asp.net asp.net-mvc asp.net-mvc-3