私はこの(説明を打ち切りが、値は正確されている)ように見える列挙有する:C#MVC 5カミソリ:ドロップダウンリストは、小文字の値を表示する代わりに大文字
public enum internalTypes
{
[Description("Description 1 (W)")]
W,
[Description("Description 2 (w)")]
w,
[Description("Description 3 (A)")]
A,
[Description("Description 4 (C)")]
C,
[Description("Description 5 (K)")]
K,
[Description("Description 6 (X)")]
X
}
を私が持っていますこのドロップダウンリストをデータベースから取得するビューに表示します。この問題では、値 "W"(大文字)が表示したい値であることに注意してください。
のDropDownListコードは次のようになります。
@Html.DropDownListFor(model => model.Internal_List[i].ValueToDisplay, new SelectList(Model.listOfTypes, "Value", "Text", Model.Internal_List[i].ValueToDisplay), "", new { @class = "full", style = "width:275px" })
Model.listOfTypes:Internal_List [i]が.ValueToDisplayが実際に正しく送信され
IEnumerable<ExtensionMethods.internalTypes> internalTypes= Enum.GetValues(typeof(ExtensionMethods.internalTypes)).Cast<ExtensionMethods.internalTypes>();
evm.listOfTypes = from inter in internalTypes
select new SelectListItem
{
Text = ExtensionMethods.GetDescription(inter),
Value = inter.ToString()
};
- つまり、それは正しく "W" 送信(大文字)。しかし、ビューの表示「W」(小文字):これは、データベースに格納された値であるので、私は、「W」ではない、「W」を表示しなければならないので
これは、問題です。同様に、「w」が格納されていた場合は、「W」ではなく「w」を表示する必要があります。私は私のプログラムをデバッグするとき、私は明らかに "W"に渡されている値が表示されていることがわかりますので、 "W"が "w"に変換される理由はわかりません。
誰かが私が間違っている可能性がある場所を教えていただけますか?私は単純に "w"に別の価値を与えることはできないことに注意してください - 私はその問題について選択肢がありません。
'Description2(W)'の代わりに 'Description2( w) '?その値のenumメンバ属性は '[Description(" Description 2(w) ")]'で設定されているので、属性が設定されたときとまったく同じように表示されます。 –
Description属性ではなくdisplay属性でEnumDropDownListForを使用できますか? – MarkovskI
@ TetsuyaYamamotoいいえ、それは問題ではありません。データベースの値がwではなくWであるため、 "Description 1(W)"が表示され、 "Description 2(w)"は表示されません。 –