簡體   English   中英

Asp.Net MVC:從具有值列表的表單集合中插入數據

[英]Asp.Net MVC : Insert data from form collection with List of values

如您在圖片中看到的,我有一個表格,在其中我不斷向下表添加項目。

當我單擊“全部保存”按鈕時,它將所有表值發布到“ InsertBulk ”方法中。 在此處輸入圖片說明

這就是我的觀點。 我在表格中創建了一個表格。 為每個輸入字段設置名稱和值。 隱藏輸入字段,僅顯示文本,然后單擊“ 保存所有”按鈕,將所有這些值發布到InsertBulk方法中。

 @model FYPPharmAssistant.Models.InventoryModel.Manufacturer @{ ViewBag.Title = "Form"; Layout = "~/Views/Shared/_Layout.cshtml"; } @using (Html.BeginForm()) { <label>Name</label><br /> @Html.EditorFor(m => m.ManufacturerName, new { htmlAttributes = new { @class = "form-control" } }) <br /> <label>Description</label><br /> @Html.EditorFor(m => m.Description, new { htmlAttributes = new { @class = "form-control" } }) <input type="submit" id="addmore" value="add" /> } @using (Html.BeginForm("InsertBulk", "Manufacturer")) { <table id="table"> <tr> <th> name &nbsp; &nbsp; </th> <th> description </th> </tr> </table> <input type="submit" id="btnsaveall" value="Save all" /> } <script> $(document).on('ready', function () { $('#addmore').on('click', function () { var $table = $("#table"); $table.append("<tr> <td><input type='hidden' name='ManufacturerName' value='" + $('#ManufacturerName').val() + "' />" + $('#ManufacturerName').val() + "</td> <td><input type='hidden' name='Description' value='" + $('#Description').val() + "'>" + $('#Description').val() + "</td> <td><a href='javascript:void(0)' onclick='removeItem(this)'>Remove</a></td></tr>"); return false; }); }); </script> 

這是我的InsertBulk方法。

 [HttpPost] public void InsertBulk(FormCollection coll) { Manufacturer m = new Manufacturer(); m.ManufacturerName = coll["ManufacturerName"]; m.Description = coll["Description"]; db.Manufacturers.Add(m); db.SaveChanges(); } 

結果:這就是我在結果中得到的。 我應該如何解決呢? 請幫忙!

在此處輸入圖片說明

我還嘗試計算鍵並在InsertBulk方法中循環遍歷每個鍵。 但是我想我做錯了。

  int count = coll.Count; if(count == 0) { return View("ChamForm", "Test"); } else { for(int i = 0; i<count; i++) { Manufacturer m = new Manufacturer(); m.ManufacturerName = coll["ManufacturerName[" + i + "]"]; m.Description = coll["Description[" + i + "]"]; db.Manufacturers.Add(m); db.SaveChanges(); } }* 

如果是這樣,為什么不基於逗號分割內容,請將它們分別保存在兩個不同的字符串數組中。 然后循環遍歷每個數組的項目保存名稱和描述。

public ActionResult Student(StudentModel model, FormCollection frm)
    {
        string XmlData = "<Parent>";


        var stuclass = frm.GetValues("stuclass");
        var InstituteId = frm.GetValues("Institute");
        var obtmark = frm.GetValues("obtmark");
        var totalmark = frm.GetValues("totalmark");
        var per = frm.GetValues("per");

        int count = stuclass.Count();

        for (int i = 0; i < count; i++)
        {
            XmlData += "<child><stuclass>" + stuclass[i] + "</stuclass>"
                            + "<InstituteId>" + InstituteId[i] + "</InstituteId>"
                             + "<obtmark>" + obtmark[i] + "</obtmark>"
                             + "<totalmark>" + totalmark[i] + "</totalmark>"
                             + "<per>" + per[i] + "</per>"
                               + "</child>";
        }
        XmlData += "</Parent>";
        model.XmlData = XmlData;
        var res = studal.Insertdtl(model);

        return View();
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM