之前在我的控制器中使用此行返回id和text列,来自asp.net MVC中的存储过程
user = new SelectList(ctx.Database.SqlQuery<LkUpGenderModel>("EXEC dbo.uspGetLkUpGender").ToList(), "GenderID", "Gender");
但是我现在想要返回更多的文本值,我已经扩展了模型以获得这些额外的字段,但我收到了错误。
有没有办法让这个工作:
user = new SelectList(ctx.Database.SqlQuery<LkUpGenderModel>("EXEC dbo.uspGetLkUpGender").ToList(), "GenderID", "Gender", "GenderShort", "GenderCombined");
目前它标记了SelectList(说调用不明确
答案 0 :(得分:1)
前面的代码只返回LkUpGenderModel
的实例,然后使用该类的SelectList
属性作为值并使用GenderID
属性构建Gender
。显示文字。
您的新代码不会请求更多属性,它只是将其他参数传递给SelectList
构造函数:即dataGroupField
,您设置为GenderShort
属性,{ {1}},您将其设置为selectedValue
属性。请参阅:https://msdn.microsoft.com/en-us/library/dn725507(v=vs.118).aspx。
如果要从要在类上填写的存储过程返回其他列,则应该向该类添加其他属性以处理这些列。但是,由于您对数据所做的只是从中创建GenderCombined
,因此除了值和显示文本之外,您无法向视图发送任何其他数据,从而使得在此实例中返回其他数据毫无意义。