无法在视图中显示名称列表
Posted
技术标签:
【中文标题】无法在视图中显示名称列表【英文标题】:Cannot display the list of names into the view 【发布时间】: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
)
【参考方案1】:
ihName = GetDocTypesString(DB, RKey);
是你的罪魁祸首。您从每个文档中获取文档类型列表,而不是变量name
。基本上你展示的课程不是它的内容。您需要访问实际文档,然后找到您需要的变量并将其分配给ihName
所以你抓住的是 DType 而不是 DType.DTname 这是我假设你试图列出的
【讨论】:
我很确定这不是 OPs 问题。这将返回一个列表,就像他们期望的那样。问题是他们如何显示列表... 这不是他们显示列表的方式,而是他们显示的列表是错误的。他得到一个文档类型列表,他想要这些文档中的名称而不是类型。 我认为您误解了这个问题。 OP 想从方法中检索整个对象,但只想在视图中显示DTName
属性
我可能误解了,但看起来他仍然用数据库中的对象类而不是实际对象填充他的列表。
该方法返回List<DType>
是正确的。 DType
类有一个名为 DTName
的属性,这是 OP 希望在视图中看到的。他们看到类名/命名空间的原因是因为ToString()
在类上的默认实现只是吐出命名空间和类。 See here以上是关于无法在视图中显示名称列表的主要内容,如果未能解决你的问题,请参考以下文章
Android OnItemClick 无法将加载的 SQL 数据库加载到列表视图中