2011-07-26 4 views
2

나는이 컨트롤러ASP.Net MVC3 드롭 다운리스트 및 데이터 전달

public ActionResult Index() 
    {   
     IList<Partner> p = r.ListPartners();    
     ViewBag.Partners = new SelectList(p.AsEnumerable(), "PartnerID", "Name"); 
     return View(); 
    } 

    // 
    // POST: /Epub/ 
    [HttpPost] 
    public ActionResult Index(IEnumerable<HttpPostedFileBase> fileUpload) 
    {    
     IList<Partner> p = r.ListPartners(); 
     ViewBag.Partners = new SelectList(p.AsEnumerable(), "PartnerID", "Name");   
     int count = 0; 
     for (int i = 0; i < fileUpload.Count(); i++) 
     { 
      if (fileUpload.ElementAt(i) != null) 
      { 
       count++; 
       var file = fileUpload.ElementAt(i); 
       if (file.ContentLength > 0) 
       { 
        var fileName = Path.GetFileName(file.FileName); 
        // need to modify this for saving the files to the server 
        var path = Path.Combine(Server.MapPath("/App_Data/uploads"), Guid.NewGuid() + "-" + fileName); 
        file.SaveAs(path); 
       } 
      } 
     } 
     if (count == 0) 
     { 
      ModelState.AddModelError("", "You must upload at least one file!"); 
     } 
     return View(); 
    } 

내가 다시보기에서 선택한 PARTNERID을 전달하는 방법을 알아 내려고 노력하고 있어요

 @{ 
    ViewBag.Title = "Index"; 
} 

<h2>You are in the epub portal!</h2> 
@Html.Partial("_Download") 


@model IEnumerable<EpubsLibrary.Models.Partner> 
@{    
    @Html.DropDownList("PartnerID", (IEnumerable<SelectListItem>)ViewBag.Partners) 
} 

해당보기가 컨트롤러. 모든 포인터는 감사하겠습니다. 다른 게시물을 살펴 봤지만이 문제를 해결할 솔루션을 찾을 수 없습니다.

미리 감사드립니다.

답변

1

이 같이보기에 당신은 컨트롤에서 값을 얻기 위해 FormCollection 매개 변수를 받아들이는 ActionResult를 만들 수 있습니다

<% using (Html.BeginForm("MyActionButton", "Home")) { %> 
    <%= Html.DropDownList("MyList",(SelectList)ViewData["testItems"], "None") %> 
    <input type="submit" value="send" /> 
<% } %> 

서버에서 : 목록을 채우기보기에서

값을 얻으려면 다음을 입력하십시오.

public ActionResult MyActionButton(FormCollection collection) 
{ 
    string value = collection["MyList"]; 
    return View(); 
} 
+0

값을 저장하기 위해 ViewBag를 사용하는 것과 어떻게 다른가요? 양식을 게시 할 때 드롭 다운 목록에서 선택한 항목의 값을 가져와 게시물에 다시 선택해야 사용자가 그렇게 할 필요가 없습니다. – samack

+0

글쎄, ViewBag 객체는 컨트롤러에서 뷰로 값을 전달하는 데 사용됩니다. 내가 전에 썼던 것은 어떻게 View에서 Controller로 값을 전달할 수 있는지입니다. 당신이 할 수있는 일은 ViewBag을 사용하여 값을 뷰에 전달한 다음 사용자가 뷰를 게시 할 때 위에서 설명한 기법을 사용하여 그 값을 얻은 다음 뷰를 다시 표시해야 할 때 다시 ViewBag을 사용하여 전달합니다 선택한 값을 선택하고 DropDownList에서 적절한 항목을 선택하십시오. 말이 돼? –

+0

도움을 주셔서 감사합니다. 알아 냈습니다. 감사드립니다. 내가 그 대리인을 만났다면 나는 당신을 업 그레 이드하겠다. – samack