c# asp - 간단한 Html.DropDownListFor()를 작성하는 방법?




net core (7)

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


Answers

모델에서 사전으로 시작하여 뚱뚱한 운지법을 피하십시오.

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.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
           )
        )
%>

또는 클래스를 작성하지 않고 직접 이와 같은 것을 뷰에 배치 할 수 있습니다.


"하나의 항목을 선택하십시오"

@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" })  

코드에서 파생 된 : 마스터 프로그래머 & & Joel Wahlund ;
킹 참조 : https://.com/a/1528193/1395101 JaredPar ;

감사합니다 마스터 프로그래머 & & 조엘 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 's와 비슷하다고 생각합니다. DropDownList에 대한 모든 코드를 뷰에 직접 넣어야한다는 것입니다. 하지만 이것은 ay / n (부울) 드롭 다운 목록을 만드는 효율적인 방법이라고 생각하므로 공유하고 싶습니다.

초보자를위한 몇 가지 메모 :

  • 'x'가 불려지는 것에 대해 걱정하지 마십시오. 처음으로 여기에 생성되며 MVC 앱의 다른 곳으로 연결되지 않으므로 원하는대로 호출 할 수 있습니다 - 'x', '모델', 'm'등
  • 사용자가 드롭 다운 목록에서 볼 수있는 자리 표시자는 "옵션 선택"이므로 원하는 경우이 옵션을 변경할 수 있습니다.
  • '피자를 좋아합니까?'라는 드롭 다운에 약간의 텍스트가 있습니다.
  • 이 버튼은 제출 버튼을 포함하여 양식의 전체 텍스트 여야합니다.

희망이 도움이 누군가,


또는 데이터베이스 컨텍스트에서 사용하는 경우

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

안녕하세요, 제가 한 프로젝트에서 어떻게했는지입니다 :

     @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"})

나는 그것이 도움이되기를 바랍니다. 누군가. 감사


위에 게시 된 모든 답변 외에도 여기 내 두 센트가 있습니다. IEnumerable에는 ICollection, ArrayList 등 IEnumerable을 구현하는 List 이외의 다른 많은 유형이 있습니다. 따라서 모든 메서드의 매개 변수로 IEnumerable을 갖는 경우 모든 컬렉션 유형을 함수에 전달할 수 있습니다. 즉, 특정 구현이 아닌 추상화를 수행 할 수있는 방법을 사용할 수 있습니다.





c# asp.net asp.net-mvc-2 html.dropdownlistfor