2011-07-26 17 views
2

私は戻ってビューから選択PARTNERIDを渡す方法を把握しようとしています。このコントローラーに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) 
} 

を持っていますコントローラ。任意のポインタが評価されるだろう。私は他の投稿を見てきましたが、これに役立つ解決策を見つけることはできません。

お時間をいただきありがとうございます。

答えて

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を再度使用してドロップダウンリストで適切な項目を選択します。それは理にかなっていますか? –

+0

ご協力いただきありがとうございます。これを理解していただきありがとうございます。もし私が担当者を持っていれば、私はあなたにアップします。 – samack

関連する問題