我在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" })
答案 0 :(得分:-1)
ihName = GetDocTypesString(DB, RKey);
是您的罪魁祸首。您将获得文档类型的列表,而不是每个文档中的变量name
。基本上,您显示的是课程而不是课程的内容。您需要访问实际文档,然后找到所需的变量并将其分配给ihName
所以您要获取DType而不是DType.DTname,这是我假设您要尝试列出的