2

EF가 포함 된 ASP.NET MVC 4 프로젝트가 있습니다 Parteners 테이블이 있습니다. 이 테이블에는 agent (part_type = 1) 및 clients (part_type = 2)의 두 가지 유형의 파서가 있습니다. 만들기보기에서 모든 에이전트, 단추 및 선택한 에이전트에 해당하는 모든 클라이언트를 보여주는 두 번째 DDL을 보여주는 첫 번째 DropDownList가 있습니다. Q1 : 사용하는 버튼은 무엇입니까? ,, @ Html.ActionLink()? Create.cshtmlMVC에서 계단식 드롭 다운 목록 4

<div class="editor-field"> 
     @Html.DropDownList("idagenti", ViewData["idagenti"] as List<SelectListItem>, String.Empty) 
    </div> 
    @*a button*@ 
    <div class="editor-label"> 
     @Html.LabelFor(model => model.id_parten, "Client") 
    </div> 
    <div class="editor-field"> 
     @Html.DropDownList("id_parten", String.Empty) 
     @Html.ValidationMessageFor(model => model.id_parten) 
    </div> 

OrdersController.cs

public ActionResult Create(int? id) // id is the selected agent 
{ 
    var agqry = db.partener.Where(p => p.part_type == 1).Where(p => p.activ == true); 
    var cltqry = db.partener.Where(p => p.part_type == 2).Where(p => p.activ == true); 
    List<SelectListItem> idagenti = new List<SelectListItem>(); 
    foreach (partener ag in agqry) 
    { 
     idagenti.Add(new SelectListItem { Text = ag.den_parten, Value = ag.id_parten.ToString() }); 
    } 
    if (id != null) 
    { 
     cltqry = cltqry.Where(p => p.par_parten == id); 
    } 
    ViewData["idagenti"] = idagenti; 
    ViewBag.id_parten = new SelectList(cltqry, "id_parten", "den_parten");// 
} 

Q :가 어떻게 내 컨트롤러에 첫 DDL에서 선택한 에이전트 ID를 전달할 수 있습니다?

+0

http://blogs.msdn.com/b/rickandy/archive/2012/01/09 /cascasding-dropdownlist-in-asp-net-mvc.aspx – RickAndMSFT

+0

가능한 복제본 : http://stackoverflow.com/questions/705540/asp-net-mvc-cascading-dropdowndown –

+0

[계단식 드롭 다운 목록과 jQuery MVC AJAX ] (http : // lesson8 .blogspot.com/2013/07/cascading-dropdown-lists-with-jquery.html) – Sender

답변

6

다음 형식은 선택한 성별 (남성 또는 여성)을 기준으로 성별의 제목이 표시되는 상황입니다 (Mr. 남성용, Mrs. 여성용).

Ajax.Begin() 도우미를 사용하면 컨트롤러에 다시 게시하고 값을보기로 되돌릴 수 있습니다.

모든 데이터는 하드 코딩되어 있으므로 수동으로 정보를 추가하는 것을 용서하십시오.

보기 - Form.cshtml

<fieldset> 
    <legend>Form</legend> 
    @* This will post to the BindTitles method in the Form Controller *@ 
    @using (Ajax.BeginForm("BindTitles", "Form", new AjaxOptions 
    { 
     HttpMethod = "POST" 
    })) 
    { 
     <p> 
      @Html.DropDownList("Genders") 
     </p>   
     <p> 
      <input type="submit" value="Submit" /> 
     </p> 
    } 
    <p> 
     @Html.DropDownList("Titles") 
    </p> 
</fieldset> 

컨트롤러 - FormController에

public ActionResult Form() 
    { 
     List<string> genderList = new List<string>(); 
     genderList.Add("Male"); 
     genderList.Add("Female"); 
     ViewBag.Genders = new SelectList(genderList); 
     ViewBag.Titles = new SelectList(new List<string>()); 
     return View(); 
    } 

    [HttpPost] 
    public ActionResult BindTitles(string genders) 
    { 
     List<string> titles = new List<string>(); 
     if (genders == "Male") 
     { 
      titles.Add("Mr."); 
      titles.Add("Sr."); 
     } 
     else 
     { 
      titles.Add("Ms."); 
      titles.Add("Mrs."); 
     } 
     ViewBag.Titles = new SelectList(titles); 
     List<string> genderList = new List<string>(); 
     genderList.Add("Male"); 
     genderList.Add("Female"); 
     ViewBag.Genders = new SelectList(genderList); 
     return View("Form"); 
    } 
+2

심각하게? 코멘트가없는 투표 이유는 무엇입니까? –

관련 문제