无法在视图中显示名称列表

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&lt;DType&gt;是正确的。 DType 类有一个名为 DTName 的属性,这是 OP 希望在视图中看到的。他们看到类名/命名空间的原因是因为ToString() 在类上的默认实现只是吐出命名空间和类。 See here

以上是关于无法在视图中显示名称列表的主要内容,如果未能解决你的问题,请参考以下文章

Android OnItemClick 无法将加载的 SQL 数据库加载到列表视图中

在列表视图中显示数据库中的数据

无法在列表视图中添加多个项目

android - 在更改 EditText 值时无法更新列表视图

输入名称使用数组显示列表视图

我试图用列表中的对象填充列表视图,但只显示名称属性,同时允许用户在列表视图中多选项目