2013-03-05 1 views
0

엔토티 "사람"(새 카드에 연결된 사람을 선택해야 함)으로 구성된 엔티티 "연료 카드"가 있습니다. 그래서 나는 내 모델 "Person"의 속성 "Name"으로 채워지는 드롭 다운리스트를 가지고있다. 내가 수행 할 작업은 첫 번째 이름과 마지막 이름 인 2 개의 항목을 드롭 다운 목록에 제공하는 것입니다 (따라서 내 드롭 다운 목록에는 "이름 +" "+ 성"이 포함될 것입니다). 그걸 할 생각이야? 아무것도 그것에 대해 인터넷에서 발견 ...Dropdownlist의 여러 항목

(가)

[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); 
    } 

보기 만들기 내 연료 카드의 방법 작성 :

@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에 추가하기 전에 2 개의 필드를 하나로 병합하는 것을 의미합니까? - [여기를 참조하십시오] (http://stackoverflow.com/questions/12727285/mvc-selectlist-combining-multiple-columns-in-text-field/12727352#12727352) – StuartLC

+0

네, 가지고 계시다 (가정 이름 = 잭 스패로우 – Traffy

+1

[여기] (http://stackoverflow.com/questions/14687082/combine-2-fields-in-selectlist/14687162#14687162)를 확인하십시오 –

답변

4

만들기를 모델의 FullName이라는 속성이

01과 같습니다.
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);