Soru MVC 4 ile Razor'da DropDownList


Bir oluşturmaya çalışıyorum DropDownList ustura görünümünde.

Birisi bana yardım eder mi?

Normal HTML5 kodu:

<select id="dropdowntipo">
    <option value="Exemplo1">Exemplo1</option>
    <option value="Exemplo2">Exemplo2</option>
    <option value="Exemplo3">Exemplo3</option>
</select>

Bunu denedim:

@{
    var listItems = new List<ListItem> { 
        new ListItem { Text = "Exemplo1", Value = "Exemplo1" }, 
        new ListItem { Text = "Exemplo2", Value = "Exemplo2" }, 
        new ListItem { Text = "Exemplo3", Value = "Exemplo3" } 
    };
}

@Html.DropDownListFor(model => 
    model.tipo, 
    new SelectList(listItems), 
    "-- Select Status --"
)

110
2017-07-18 15:13


Menşei


sizin var listItems = ... kontrolörünüzde Görünümünüzü değil. - Liam
Bu MVC3 ancak MVC4 ile aynı sözdizimi: stackoverflow.com/questions/5070762/... - Liam
@Liam: Muhtemelen kontrol modelinde değil, modele aittir. Denetleyicinin bağımlılığı olmamalı ListItem UI-bağlı bir kavram olarak. Olmamalıydı bile Gerçekten mi sadece görünümde görünüm modelinde olmak. Denetleyici, görünüm modelini oluşturmalı, görünüm modeli verileri içermelidir, görünüm UI öğelerini ( ListItem) bu verilere. - David
Yerel HTML üzerinden Razor kullanmanın değeri nedir; Performans mı, işlevsellik mi? Denetleyiciden hiçbir veri çekilmediği için. - Barry MSIH
Birisi lütfen model.tipo özelliğinin genel anlamda ne ifade ettiğini söyleyin. - Typhon


Cevaplar:


@{
   List<SelectListItem> listItems= new List<SelectListItem>();
   listItems.Add(new SelectListItem
        {
          Text = "Exemplo1",
          Value = "Exemplo1"
        });
   listItems.Add(new SelectListItem
        {
            Text = "Exemplo2",
            Value = "Exemplo2",
            Selected = true
        });
   listItems.Add(new SelectListItem
        {
            Text = "Exemplo3",
            Value = "Exemplo3"
        });
}

@Html.DropDownListFor(model => model.tipo, listItems, "-- Select Status --")

201
2017-07-18 15:21



harika çalışıyor!, çok teşekkür ederim - user2232273
Rica ederim. - chridam
Listeyi denetleyicide tanımladıysanız, bunu yapmak için Görünüm'e ihtiyacınız var, bunun gibi: @ Html.DropDownListFor (model => model.model_year, ViewBag.Years Listesi <SelectListItem>, "- Year Year -") - Bashar Abu Shamaa
@chridam Yardımcı oldu. Teşekkürler. - neda Derakhshesh
Son satırda - Hangi modeli arayacağımı nereden biliyorsunuz? "Tipo" nereden geliyor? - Andre


@{var listItems = new List<ListItem>
    {
          new ListItem { Text = "Exemplo1", Value="Exemplo1" },
          new ListItem { Text = "Exemplo2", Value="Exemplo2" },
          new ListItem { Text = "Exemplo3", Value="Exemplo3" }
    };
    }
        @Html.DropDownList("Exemplo",new SelectList(listItems,"Value","Text"))

63
2018-01-31 05:04



Bu benim için mükemmel çalıştı - BrianLegg
Bu örnek çalışması için bunu bu kod segmentini kullanarak ekledim. @using System.Web.UI.WebControls; - Badar
Bu benim için çalışmıyor. - Andre


Bunu kullanabilirsiniz:

@Html.DropDownListFor(x => x.Tipo, new List<SelectListItem>
    {
                        new SelectListItem() {Text = "Exemplo1", Value="Exemplo1"},
                        new SelectListItem() {Text = "Exemplo2", Value="Exemplo2"},
                        new SelectListItem() {Text = "Exemplo3", Value="Exemplo3"}
    })  

33
2018-04-19 17:09



"Tipo" nedir? - Andre
@Andre. Mülkiyet Tipo modeli. İlk gönderiye bak. - Gabriel Simas
teşekkürler, hala nereden aldığını hiç bilmiyorum. - Andre
Rica ederim! Sorun değil - Gabriel Simas


// ViewModel

public class RegisterViewModel
{

    public RegisterViewModel()
    {
        ActionsList = new List<SelectListItem>();
    }

    public IEnumerable<SelectListItem> ActionsList { get; set; }

    public string StudentGrade { get; set; }

  }

// Enum Sınıfı:

public enum GradeTypes
{
    A,
    B,
    C,
    D,
    E,
    F,
    G,
    H
}

// Denetleyici Eylemi

 public ActionResult Student()
    {
RegisterViewModel vm = new RegisterViewModel();
IEnumerable<GradeTypes> actionTypes = Enum.GetValues(typeof(GradeTypes))
                                             .Cast<GradeTypes>();
        vm.ActionsList = from action in actionTypes
                         select new SelectListItem
                         {
                             Text = action.ToString(),
                             Value = action.ToString()
                         };
        return View(vm);
    }

// eylemi görüntüle

 <div class="form-group">
                                <label class="col-lg-2 control-label" for="hobies">Student Grade:</label>
                                <div class="col-lg-10">
                                   @Html.DropDownListFor(model => model.StudentGrade, Model.ActionsList, new { @class = "form-control" })
                                </div>

18
2018-05-13 04:42





İşte en kolay cevap:

senin bakışta sadece ekle:

@Html.DropDownListFor(model => model.tipo, new SelectList(new[]{"Exemplo1",
"Exemplo2", "Exemplo3"}))

VEYA  kontrolörünüzde ekleyin:

var exemploList= new SelectList(new[] { "Exemplo1:", "Exemplo2", "Exemplo3" });
        ViewBag.ExemploList = exemploList;

ve görünümünüz sadece ekleyin:

@Html.DropDownListFor(model => model.tipo, (SelectList)ViewBag.ExemploList )

Bunu Jess Chadwick ile öğrendim.


10
2017-09-21 08:37





Bir dizi kullanmak, bir liste oluşturmadan biraz daha verimli olur.

@Html.DropDownListFor(x => x.Tipo, new SelectListItem[]{
                new SelectListItem() {Text = "Exemplo1", Value="Exemplo1"},
                new SelectListItem() {Text = "Exemplo2", Value="Exemplo2"},
                new SelectListItem() {Text = "Exemplo3", Value="Exemplo3"}})

7
2018-02-03 21:34





@{
List<SelectListItem> listItems= new List<SelectListItem>();
listItems.Add(new SelectListItem
    {
      Text = "One",
      Value = "1"
    });
listItems.Add(new SelectListItem
    {
        Text = "Two",
        Value = "2",
    });
listItems.Add(new SelectListItem
    {
        Text = "Three",
        Value = "3"
    });
listItems.Add(new SelectListItem
{
   Text = "Four",
   Value = "4"
});
listItems.Add(new SelectListItem
{
   Text = "Five",
   Value = "5"
});
}
@Html.DropDownList("DDlDemo",new SelectList(listItems,"Value","Text"))

Bakınız: - MVC 4 jilet örneğinde açılır liste oluşturma


6
2018-04-22 06:40





İnan bana bunu yapmak için çok fazla seçenek denedim ve burada cevabım var 

ama her zaman, hem ön uç hem de arka uç geliştiriciler için bildiğim en iyi uygulamayı ve en iyi yolu aradım. for loop (evet şaka yapmıyorum)

Çünkü ön uç size kukla veriler içeren UI Sayfaları verdiğinde, belirli seçme seçeneğindeki sınıfları ve bazı satır içi stillerini ekledi; hard to deal kullanarak HtmlHelper 

Şuna bak:

<select class="input-lg" style="">
    <option value="0" style="color:#ccc !important;">
        Please select the membership name to be searched for
    </option>
    <option value="1">11</option>
    <option value="2">22</option>
    <option value="3">33</option>
    <option value="4">44</option>
</select>

Bu, ön uç geliştiriciden en iyi çözüm, döngü için kullanmaktır

Fristly create veya get your list Denetleyici Eylemindeki (...) veriden ve ViewModel, ViewBag veya

//This returns object that contain Items and TotalCount
ViewBag.MembershipList = await _membershipAppService.GetAllMemberships();

İkincisi, görünümde bu açılır menü için açılır listeyi doldurmak için

<select class="input-lg" name="PrerequisiteMembershipId" id="PrerequisiteMembershipId">
    <option value="" style="color:#ccc !important;">
        Please select the membership name to be searched for
    </option>
    @foreach (var item in ViewBag.MembershipList.Items)
    {
        <option value="@item.Id" @(Model.PrerequisiteMembershipId == item.Id ? "selected" : "")>
            @item.Name
        </option>
    }
</select>

bu şekilde UI Tasarımını ve basit, kolay ve okunabilirliğini bozmazsınız.

tıraş bıçağı kullanmadıysanız bile bu size yardımcı olur


6
2017-11-06 09:50