2011-07-26 59 views
2

我有這個控制器ASP.Net MVC3 DROPDOWNLIST和傳球數據

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

而且

 @{ 
    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) 
} 

我試圖找出如何選擇PARTNERID從視圖傳遞迴相應的視圖控制器。任何指針將不勝感激。我看了其他帖子,但似乎無法找到解決方案,將有助於此。

提前感謝您的時間。

回答

1

在您查看這樣您可以創建一個ActionResult接受的FormCollection參數,以便從控件獲取值:

在視圖填充列表:

<% 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對象用於將值從Controller傳遞給View。我之前寫的是如何將視圖中的值傳遞給控制器​​,這就是您在帖子中提出的問題。您可以使用ViewBag將值傳遞給視圖,然後當用戶發佈視圖時,使用上述技術獲取該值,然後當您需要再次顯示視圖時,再次使用ViewBag來傳遞選定的值並在DropDownList中選擇適當的項目。那有意義嗎? –

+0

非常感謝您的幫助我已經明白了這一點,並感謝您的意見。如果我有代表,我會鼓勵你。 – samack