我遇到了從linq查詢中填充下拉菜單的問題。這裏是我的代碼片段:使用SelectList從linq中獲取文本到下拉菜單時出現錯誤
theList = new SelectList(from e in db.MyTab
join f in db.MyOtherTab on e.TypeId equals MyOtherTab.TypeId
select new
{
Text = e.Name + " "
+ e.Code + " "
+ f.TypeDescription + " "
+ e.Class + " "
+ e.Series + " "
+ SqlFunctions.StringConvert(e.InterestRate),
Value = e.Id
}, "Value", "Text");
兩個e.Name
和e.Code
是在我的表varchar(50)
。 InterestRate
是decimal
,因此SqlFunctions.StringConvert
功能。
Name
,Code
,Class
,Series
和TypeDescription
是我的表varchar
類型。
這工作如果Name
,Code
,Class
,Series
和TypeDescription
是文字或字母數字。問題是如果Name
,Code
,Class
和Series
是數字(儘管類型爲varchar
),則填充SelectList
。
如果是這種情況,則下拉列表中有一個空行。
我不明白這是爲什麼。如果它是一個varchar,它應該無關緊要,如果它是「123」,它仍然是一個varchar,對吧?也許這不是問題,但是,檢查這些表,如果ame,Code,Class和Series是數字,則下拉列中的行爲空白是一致的。
有誰知道我該如何解決這個問題?
謝謝。
有沒有規定說你必須在一個聲明中做的一切 – Jonesopolis