2013-03-05 4 views
0

У меня есть сущность «Топливная карта», которая составлена ​​энтотией «Лицо» (вам нужно выбрать человека, связанного с новой картой). Поэтому у меня есть раскрывающийся список, который заполняется атрибутом «Имя» моей модели «Человек». То, что я бы выполнил, - это предоставить моему выпадающему списку 2 элемента, которые являются первым именем и фамилией (поэтому мой раскрывающийся список будет содержать «FirstName +» «+ LastName»). Любая идея сделать это? В настоящее время в Интернете о том, что ...Несколько элементов в раскрывающемся списке

Создать методы для моей Топливной карты

[HttpPost] 
    public ActionResult Create(VehicleFuelCard vehiclefuelcard) 
    { 
     if (ModelState.IsValid) 
     { 
      db.VehicleFuelCards.AddObject(vehiclefuelcard); 
      db.SaveChanges(); 
      return RedirectToAction("Index"); 
     } 

     ViewBag.Id_Person = new SelectList(db.Persons, "Id_Person", "FirstName", vehiclefuelcard.Id_Person); 

     ViewBag.Id_VehicleFuelCardCompany = new SelectList(db.VehicleFuelCardCompanies, "Id_VehicleFuelCardCompany", "Name", vehiclefuelcard.Id_VehicleFuelCardCompany); 
     return View(vehiclefuelcard); 
    } 

    // 
    // GET: /VehicleFuelCard/Edit/5 

    public ActionResult Edit(long id = 0) 
    { 
     VehicleFuelCard vehiclefuelcard = db.VehicleFuelCards.Single(v => v.Id_VehicleFuelCard == id); 
     if (vehiclefuelcard == null) 
     { 
      return HttpNotFound(); 
     } 
     ViewBag.Id_Person = new SelectList(db.Persons, "Id_Person", "FirstName", vehiclefuelcard.Id_Person); 
     ViewBag.Id_VehicleFuelCardCompany = new SelectList(db.VehicleFuelCardCompanies, "Id_VehicleFuelCardCompany", "Name", vehiclefuelcard.Id_VehicleFuelCardCompany); 
     return View(vehiclefuelcard); 
    } 

The View Создать:

@model BuSIMaterial.Models.VehicleFuelCard 

@{ 
    ViewBag.Title = "Create"; 
} 

<h2>Create a fuel card</h2><br /> 

@using (Html.BeginForm()) { 
    @Html.ValidationSummary(true) 

    <fieldset> 
     <legend>VehicleFuelCard</legend> 

     <div class="editor-label"> 
      Card Number : 
     </div> 
     <div class="editor-field"> 
      @Html.TextBoxFor(model => model.Number, new { maxlenght = 50}) 
      @Html.ValidationMessageFor(model => model.Number) 
     </div> 

     <div class="editor-label"> 
      PIN code : 
     </div> 
     <div class="editor-field"> 
      @Html.TextBoxFor(model => model.PIN, new { maxlenght = 8}) 
      @Html.ValidationMessageFor(model => model.PIN) 
     </div> 

     <div class="editor-label"> 
      Start date : 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.StartDate) 
      @Html.ValidationMessageFor(model => model.StartDate) 
     </div> 

     <div class="editor-label"> 
      End date : 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.EndDate) 
      @Html.ValidationMessageFor(model => model.EndDate) 
     </div> 

     <div class="editor-label"> 
      Company : 
     </div> 
     <div class="editor-field"> 
      @Html.DropDownList("Id_VehicleFuelCardCompany", String.Empty) 
      @Html.ValidationMessageFor(model => model.Id_VehicleFuelCardCompany) 
     </div> 

     <div class="editor-label"> 
      Owner : 
     </div> 
     <div class="editor-field"> 
      @Html.DropDownList("Id_Person", String.Empty) 
      @Html.ValidationMessageFor(model => model.Id_Person) 
     </div> 

     <p> 
      <input type="submit" value="Create" /> 
     </p> 
    </fieldset> 
} 

<div> 
    @Html.ActionLink("Back to List", "Index") 
</div> 

@section Scripts { 
    @Scripts.Render("~/bundles/jqueryval") 
} 
+1

Вы имеете в виду слияние двух полей в один, прежде чем добавлять в SelectList? - [см. здесь] (http://stackoverflow.com/questions/12727285/mvc-selectlist-combining-multiple-columns-in-text-field/12727352#12727352) – StuartLC

+0

Да, чтобы иметь (при первом имени = «jack» и фамилия = «sparrow») в моем выпадающем списке: Jack Sparrow – Traffy

+1

Проверить [ЗДЕСЬ] (http://stackoverflow.com/questions/14687082/combine-2-fields-in-selectlist/14687162#14687162) –

ответ

4

Создать свойство на вашей модели под названием FullName, что-то вроде

public string FullName 
{ 
    get { return FirstName + " " + LastName; } 
} 

Затем привяжите свою каплю к ней.

+0

Спасибо за вашу помощь ! – Traffy

1

Попробуйте это:

var people = from p in db.Persons.ToList() 
      select new 
      { 
       Id = Id_Person, 
       Name = p.FirstName + " " + p.LastName, 
      }; 

ViewBag.Id_Person = new SelectList(people, "Id", "Name", vehiclefuelcard.Id_Person); 
Смежные вопросы