2013-08-28 1 views
0

내 응용 프로그램에서 드롭 다운 목록을 채우는 데 문제가 있습니다. ClientId과 반대로 드롭 다운에 표시하려면 Client_Name이 필요합니다.드롭 다운 목록 - 연결할 수없는 코드가 감지되었습니다.

경고 :

I 나타나는 오류는 녹색으로 '목록'을 강조하고 말한다 컨트롤러에 도달 할 수없는 코드가 감지되었습니다.

비슷한 드롭 다운의 인구와 관련하여이 문제가 발생하지 않았습니다.

다음과 같이 컨트롤러에 내 코드는 다음과 같습니다 첫째,

<div class="editor-field"> 
    @Html.DropDownList("ClientId", "Please Select"); 
    @Html.ValidationMessageFor(model => model.CleintId) 
</div> 
+0

전체 컨트롤러 동작입니까? –

+0

컨트롤러에 작동하는 추가 드롭 다운 코드가 있으며 작동하지 않습니다. 작업 드롭 다운 코드는 다음과 같습니다.'List VehicleList = new List (); // 차량 등록 var VehicleQuery1 = from a db.Vehicles orderby a.Vehicle_Reg 선택 a; VehicleList.AddRange (VehicleQuery1); ViewBag.VehicleId = new SelectList (VehicleList, "VehicleId", "Vehicle_Reg"); ' –

+0

Html.DropDownList()의 올바른 확장을 사용하지 않는 것 같습니다. –

답변

1

그것은 오류가 아닙니다, 그러나 당신은 당신의 코드를 검사하고 중 (주석)을 제거 연결할 수없는 코드 또는 위의 코드를 변경해야합니다 제안은 어떻게 든 코드에 도달 할 수 있도록. 당신이 당신의 actionresult에 두 번 값을 반환 할 수 없습니다

... 
    Trip NewTrip = new Trip(); 
    NewTrip.Date_Departed = DateTime.Now; 
    return View(NewTrip); // <- your method will always return here, no code below will ever execute 

    // These code below is unreachable: it will never be executed. 
    // So the compiler advise (via warning) you either to delete (or comment out) the code below 
    // or change return View(NewTrip) line 

    // the client names 

    List<Client> ClientList = new List<Client>(); 

    var ClientQuery1 = from b in db.Clients 
        orderby b.Client_Name 
        select b; 

    ClientList.AddRange(ClientQuery1); 
    ViewBag.ClientId = new SelectList(ClientList, "ClientId", "Client_Name"); 

    return View(); 

} 
2

음을 :

// 
// GET: /Trip/Create 

    public ActionResult Create() 
    { 

     List<Vehicle> VehicleList = new List<Vehicle>(); 

     // the vehicle registrations 
     var VehicleQuery1 = from a in db.Vehicles 
          orderby a.Vehicle_Reg 
          select a; 

     VehicleList.AddRange(VehicleQuery1); 

     ViewBag.VehicleId = new SelectList(VehicleList, "VehicleId", "Vehicle_Reg"); 

     ViewBag.TodaysDate = DateTime.Now; 

     Trip NewTrip = new Trip(); 
     NewTrip.Date_Departed = DateTime.Now; 
     return View(NewTrip); 

     // the client names 

     List<Client> ClientList = new List<Client>(); 

     var ClientQuery1 = from b in db.Clients 
         orderby b.Client_Name 
         select b; 

     ClientList.AddRange(ClientQuery1); 
     ViewBag.ClientId = new SelectList(ClientList, "ClientId", "Client_Name"); 

     return View(); 

    } 

내가 만든뿐만 아니라 뷰를 생성하여 변경 사항을 변경하고 다음과 같이 코드가 경고는 오류가 아닙니다.

매우 설명적인 경고로 돌아갑니다. 절대로 실행할 수없는 코드가 있습니다 (예 : unreachable code). 실행을 방해하는 요소를 감지하려면 밑줄이 표시된 명령문 (경고문이 참조하는 IDE에서 경고에 밑줄을 긋는 경우) 앞에 항상 구문을 살펴보십시오.

이 경우 아무런 조건없이 return을 사용하면 아무런 의미가 없다는 것을 알 수 있습니다. return이 실행됩니다.

감사합니다. Daniel and Pawel. 이제는 필요에 따라 작동합니다. 내가 어떻게 그것을 놓쳤는지 모르겠다. 당신이 항상이 방법의 끝에서 return을 유지하는 경우

이 실수를 거의 절대 수 있습니다. 그리고 어떤 조건으로 인해 돌아올 필요가없는 한 당신은 끝까지 return을 지킬 수 있고 있어야합니다.

0

두 번 돌아오고 있습니다! 첫 번째 반환 후 다음 코드는 실행되지 않습니다. 컴파일러가 경고합니다.

0

는 수익은 마지막에 배치해야합니다.

관련 문제