【发布时间】:2018-09-19 17:47:59
【问题描述】:
我有一个在 ViewModel 中准备的列表,用于从数据库表中获取值。分配给模型类的列表:
public class DType
{
public string DTName { get; set; }
}
并通过以下方法更新:
public static List<DType> GetDocTypesString(Entity DB, int RKey)
{
return DB.Database.SqlQuery<DType>(@"SELECT * FROM Names
WHERE NK = {0}", RKey).ToList();
}
然后我将列表(模型)返回到视图以将名称列出到选择菜单中,如下所示:
实际返回给视图的模型:
public List<DType> ihName { get; set; }
使用上面的方法填充它:
ihName = GetDocTypesString(DB, RKey);
然后,在视图中,我使用以下内容:
@Html.Partial("GettingNamesPartial", new ProjName.ViewModels.UploadingPartialViewModel
{
DropdownIHDocType = new SelectList(Model.ihEditorInstanceName)
})
结果总是这样:
列表(选择)显示,而不是显示实际名称:
ProjName.ViewModels.DType
ProjName.ViewModels.DType
ProjName.ViewModels.DType
ProjName.ViewModels.DType
唯一匹配的是项目数与数据库表上的名称相同。
重要提示: 在尝试从数据库中提取名称之前,通过硬编码名称,列表工作得很好,如下所示:
DropdownIHDocType = new SelectList(new string[] { "Morgan", "Sam", "Shawn" })
【问题讨论】:
-
您尝试显示这些项目的标记在哪里?问题是您显示的是整个对象,而不是对象的属性(即
DtName)