2016-04-08 19 views
0

Oldukça yeni Asp.net. Bugün açılır listeyi sıralamak istiyorum. Bu düzenleme benim denetleyicisi geçerli:dropDownList öğeleri alfabetik olarak nasıl asp.net

public ActionResult Edit(int? id) 
{ 
    if (id == null) 
    { 
     return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 
    } 
    User user = db.Users.Find(id); 
    if (user == null) 
    { 
     return HttpNotFound(); 
    } 
    ViewBag.DefaultCustomerProjectId = new SelectList(db.CustomerProjects, "Id", "Name", user.DefaultCustomerProjectId); 
    ViewBag.DefaultServiceId = new SelectList(db.Services, "Id", "Name", user.DefaultServiceId); 
    ViewBag.CustomerId = new SelectList(db.Customers, "Id", "Name", user.CustomerId); 
    return View(user); 
} 

Ve bu nasıl alfabetik benim @ Html.DropDownList sıralayabilir benim düzenleme görmek

@model TimeReportingLib.User 
@{ 
    ViewBag.Title = "Edit"; 
} 
<h2>Edit</h2> 
@using (Html.BeginForm()) 
{ 
    @Html.AntiForgeryToken() 

    <div class="form-horizontal"> 
     <h4>User</h4> 
     <hr /> 
     @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 
     @Html.HiddenFor(model => model.Id) 
     <div class="form-group"> 
      @Html.LabelFor(model => model.DefaultServiceId, "DefaultServiceId", htmlAttributes: new { @class = "control-label col-md-2" }) 
      <div class="col-md-10"> 
       @Html.DropDownList("DefaultServiceId", null, htmlAttributes: new { @class = "form-control" }) 
       @Html.ValidationMessageFor(model => model.DefaultServiceId, "", new { @class = "text-danger" }) 
      </div> 
     </div> 

mı? Benim yorumunda söylediği gibi

+2

'ViewBag.DefaultServiceId = new SelectList (db.Services.OrderBy (s => s.Name), "Kimlik", "Ad", user.DefaultServiceId); –

+0

@QuentinRoger - Teşekkürler, çalışıyor! – BinaryTie

cevap

4

Eğer OrderBy uzatma yöntemi kullanabilirsiniz: uzatma yöntemi ile emirle

ViewBag.DefaultServiceId = new SelectList(db.Services.OrderBy(s=>s.Name), "Id", "Name", user.DefaultServiceId); 
İlgili konular