[C#] 간단한 Html.DropDownListFor ()를 작성하는 방법?

ASP.NET MVC 2에서는 정적 옵션을 제공하는 매우 간단한 드롭 다운 목록을 작성하고 싶습니다. 예를 들어 “빨간색”, “파란색”및 “녹색”중 하나를 선택하고 싶습니다.



답변

이 MSDN 기사Stack Overflow에 대한 사용법 예제를 참조하십시오 .

Linq / POCO 클래스는 다음과 같습니다.

public class Color
{
    public int ColorId { get; set; }
    public string Name { get; set; }
}

그리고 다음 모델이 있다고 가정 해 봅시다.

public class PageModel
{
   public int MyColorId { get; set; }
}

마지막으로 다음과 같은 색상 목록이 있다고 가정 해 봅시다. Linq 쿼리, 정적 목록 등에서 올 수 있습니다.

public static IEnumerable<Color> Colors = new List<Color> {
    new Color {
        ColorId = 1,
        Name = "Red"
    },
    new Color {
        ColorId = 2,
        Name = "Blue"
    }
};

보기에서 다음과 같이 드롭 다운 목록을 작성할 수 있습니다.

<%= Html.DropDownListFor(n => n.MyColorId,
                         new SelectList(Colors, "ColorId", "Name")) %>


답변

<%:
     Html.DropDownListFor(
           model => model.Color,
           new SelectList(
                  new List<Object>{
                       new { value = 0 , text = "Red"  },
                       new { value = 1 , text = "Blue" },
                       new { value = 2 , text = "Green"}
                    },
                  "value",
                  "text",
                   Model.Color
           )
        )
%>

또는 수업을 쓰지 않을 수도 있습니다. 이와 같은 것을 뷰에 직접 넣으십시오.


답변

모델에서 사전으로 시작하여 뚱뚱한 핑거링을 피하십시오.

namespace EzPL8.Models
{
    public class MyEggs
    {
        public Dictionary<int, string> Egg { get; set; }

        public MyEggs()
        {
            Egg = new Dictionary<int, string>()
            {
                { 0, "No Preference"},
                { 1, "I hate eggs"},
                { 2, "Over Easy"},
                { 3, "Sunny Side Up"},
                { 4, "Scrambled"},
                { 5, "Hard Boiled"},
                { 6, "Eggs Benedict"}
            };

    }


    }

보기에서 표시 할 목록으로 변환

@Html.DropDownListFor(m => m.Egg.Keys,
                         new SelectList(
                             Model.Egg,
                             "Key",
                             "Value"))


답변

안녕하세요, 하나의 프로젝트에서 내가 한 일이 있습니다.

     @Html.DropDownListFor(model => model.MyOption,
                  new List<SelectListItem> {
                       new SelectListItem { Value = "0" , Text = "Option A" },
                       new SelectListItem { Value = "1" , Text = "Option B" },
                       new SelectListItem { Value = "2" , Text = "Option C" }
                    },
                  new { @class="myselect"})

누군가에게 도움이되기를 바랍니다. 감사


답변

또는 데이터베이스 컨텍스트에서 온 경우 사용할 수 있습니다.

@Html.DropDownListFor(model => model.MyOption, db.MyOptions.Select(x => new SelectListItem { Text = x.Name, Value = x.Id.ToString() }))


답변

“하나의 항목을 선택하십시오”

@Html.DropDownListFor(model => model.ContentManagement_Send_Section,
  new List<SelectListItem> { new SelectListItem { Value = "0", Text = "Plese Select one Item" } }
    .Concat(db.NameOfPaperSections.Select(x => new SelectListItem { Text = x.NameOfPaperSection, Value = x.PaperSectionID.ToString() })),
  new { @class = "myselect" })  

코드에서 파생 됨 : Master Programmer && Joel Wahlund ;
King Reference : https://stackoverflow.com/a/1528193/1395101 JaredPar ;

감사합니다 마스터 프로그래머 && Joel Wahlund && JaredPar ;

행운을 빌어 친구.


답변

@using (Html.BeginForm()) {
    <p>Do you like pizza?
        @Html.DropDownListFor(x => x.likesPizza, new[] {
            new SelectListItem() {Text = "Yes", Value = bool.TrueString},
            new SelectListItem() {Text = "No", Value = bool.FalseString}
        }, "Choose an option")
    </p>
    <input type = "submit" value = "Submit my answer" />
} 

이 답변은 Berat의 것과 비슷하다고 생각합니다. DropDownList의 모든 코드를 뷰에 직접 넣었다는 점입니다. 그러나 이것이 ay / n (부울) 드롭 다운 목록을 만드는 효율적인 방법이라고 생각하므로 공유하고 싶었습니다.

초보자를위한 참고 사항 :

  • ‘x’가 무엇인지 걱정하지 마십시오. 여기에서 처음으로 생성되며 MVC 앱의 다른 곳에서는 연결되지 않으므로 ‘x’, ‘모델’, ‘m’등
  • 드롭 다운 목록에 사용자에게 표시되는 자리 표시자는 “옵션 선택”이므로 원하는 경우이를 변경할 수 있습니다.
  • 드롭 다운 앞에 “피자 좋아하니?”라는 텍스트가 약간 있습니다.
  • 제출 버튼을 포함한 양식의 완전한 텍스트 여야합니다.

이것이 누군가를 돕기를 바랍니다.