2011-12-03 6 views
0

すべての商品を返品する際には、1つのフォームがあります。そして私はTextBoxを持っています。このテキストボックスに1つのフォームから複数のレコードを保存します。

View form:  
|ID|Product|TextBox (amount of product) 
|3 |Carrot | 20 
|4 |Potatos| 5 
|7 |Tomato | 10 

私は、製品の量を書いて、データベースその他(製品)databseで

Add(zuzycie) table:  
|ID|ID_Product|amount|date 
|1 | 3  | 20 |3.12.2011 
|2 | 4  | 5 |3.12.2011 
|3 | 7  | 10 |3.12.2011 

および製品の合計量にこれを保存します。

Product table 
|ID|name |amount 
|3 |Carrot |10 + 20 
|4 |Potatos|15 + 5 
|7 |Tomato |7 + 10 

データベースには、金額は別個のレコードとして保存されます。私はあなたが私の意味を理解してくれることを願っています。

コントローラの全製品のIDを取得してデータベースに保存する方法は?

ビュー:

@using (Html.BeginForm()) { 
    @Html.ValidationSummary(true) 
    <fieldset> 
     <legend>Zużycie produków</legend> 
     <br /> 
     @{ 
    var grid = new WebGrid(ViewBag.produkty,null, "Produkty", 5); 
       } 
@grid.GetHtml(
     tableStyle: "grid", 
     headerStyle: "head", 
     alternatingRowStyle: "alt", 
     columns: grid.Columns(
      grid.Column("nazwa_prod","Produkt"), 
      grid.Column("ilosc","Ilość"), 
      grid.Column("jednostka","Jed."), 
      grid.Column("cena","Cena"), 
      grid.Column("nazwa","Firma"), 
      grid.Column("ID_Produkt", "ID_Prod"), 
      grid.Column(header: "Zuzycie", format: (item) => 
         new HtmlString(
           Html.TextBoxFor(model => model.ilosc).ToString())) /*amount text box */ 


     ) 
     ) 

モデル:

public class zuzycieModel 
    { 
     public int ID_Produktu { get; set; } //Id_product 
     public decimal ilosc {get;set;} //amount 
     public string data { get; set; } //date 

    } 

コントローラー:

public ActionResult zuzycie() 
     { 
      var prod = (from d in baza.Produkts 
         join s in baza.Firmas on d.ID_firma equals s.ID_firma 
         select new { d.ID_firma, d.nazwa_prod, d.ilosc, d.jednostka, d.cena, d.ID_Produkt, s.nazwa }).ToList(); 


      ViewBag.produkty = prod; 
      return View(); 
     } 

     [HttpPost] 
     public ActionResult zuzycie(zuzycieModel model) 
     { 
      Zuzycie zuz = new Zuzycie(); //table zuzycie 
      var dat = DateTime.Today; 

      zuz.ID_Produkt = model.ID_Produktu; //Id product 
      zuz.ilosc = model.ilosc; //amount 
      zuz.data = dat; //date 

      baza.Zuzycies.InsertOnSubmit(zuz); 
      baza.SubmitChanges(); 

      return RedirectToAction("zarzadzaj_produktami", "Produkt"); 
     } 

は、私は、製品のIDを取得してみてください、私はHiddenForとしてビューでそれをパットとモデルを使用して取得します。 ..それは動作しません...

答えて

0

HttpPost zuzycie()メソッドであなたのアイデアは何だったのか分かりません。 Zuzycie()とは何ですか?複数のレコードを保存することを求めていますが、ZuzycieModelのclearyは単一のProductIDを参照しています。

ViewBagを使用してコレクションにビューを渡すのはなぜですか?あなただけ

return View(prod); 

お知らせあなたは何を渡しているを通してそれを返すことができません - コレクション(リスト<>)と私は、これはあなたのデータの永続性のロジックに反映されるように表示されません。

+0

ご理解いただけます。だから私がこれをしたいなら、私は何をする必要があります。私は何の言葉...制御を意味する...何が私にどのように始まり、何を読んでいるかを案内します。 私はViewBagを使用してテーブルを表示します。なぜこれは..私は今ではない...私はビューのテーブルにショーのレコードが欲しかったし、それは働いたので、私はまだこれを使用しています。私は 'return view(prod)を使用しています。私が日付をつけたとき。 TextBoxに保存します。 – user1031034

+0

この質問を見て:http://stackoverflow.com/questions/4720330/model-containing-list-of-models-mvc-3-razorプラスあなたが本当にこのチュートリアルを完全に失ったと感じたら、それは完全な方法です主なMVCの概念を理解するhttp://mvcmusicstore.codeplex.com/ – torm

関連する問題