728x90
반응형
질문 : ASP.NET MVC의 열거 형에서 드롭 다운 목록을 만드는 방법은 무엇입니까?
Html.DropDownList
확장 메서드를 사용하려고하는데 열거 형과 함께 사용하는 방법을 알아낼 수 없습니다.
다음과 같은 열거가 있다고 가정 해 보겠습니다.
public enum ItemTypes
{
Movie = 1,
Game = 2,
Book = 3
}
Html.DropDownList
확장 메서드를 사용하여 이러한 값으로 드롭 다운을 만드는 방법은 무엇입니까?
아니면 단순히 for 루프를 만들고 Html 요소를 수동으로 만드는 것이 최선의 방법입니까?
답변
@Html.EnumDropDownListFor(
x => x.YourEnumField,
"Select My Type",
new { @class = "form-control" })
@Html.DropDownList("MyType",
EnumHelper.GetSelectList(typeof(MyType)) ,
"Select My Type",
new { @class = "form-control" })
나는 룬의 대답을 확장 방법으로 굴렸다.
namespace MyApp.Common
{
public static class MyExtensions{
public static SelectList ToSelectList<TEnum>(this TEnum enumObj)
where TEnum : struct, IComparable, IFormattable, IConvertible
{
var values = from TEnum e in Enum.GetValues(typeof(TEnum))
select new { Id = e, Name = e.ToString() };
return new SelectList(values, "Id", "Name", enumObj);
}
}
}
이를 통해 다음을 작성할 수 있습니다.
ViewData["taskStatus"] = task.Status.ToSelectList();
MyApp.Common을 using MyApp.Common
출처 : https://stackoverflow.com/questions/388483/how-do-you-create-a-dropdownlist-from-an-enum-in-asp-net-mvc
728x90
반응형
'개발관련 > other' 카테고리의 다른 글
Razor에서 삼항 연산자를 사용하는 방법 (특히 HTML 속성에서) (0) | 2021.07.20 |
---|---|
awk 또는 sed로 문자열을 재귀 적으로 찾기 / 바꾸는 방법 (0) | 2021.07.20 |
Windows 서버에서 포트가 열려 있는지 확인하는 법 (0) | 2021.07.14 |
Access-Control-Allow-Origin 헤더를 사용하는 방법 (0) | 2021.07.08 |
Vim에서 커서를 이동하지 않고 화면을 이동하는 방법 (0) | 2021.07.07 |