简体   繁体   English

我如何使用jQuery在asp.net MVC中添加/发送多个记录?

[英]How can i add/send multiple records in asp.net MVC using jQuery?

I want to send multiple records in the database using javascript in asp.net mvc i tried many different ways but all in vain. 我想使用asp.net mvc中的javascript在数据库中发送多个记录,我尝试了许多不同的方法,但是都徒劳。 here I have the best code which can send the data to the controller but the file is not sending. 这里有最好的代码,可以将数据发送到控制器,但文件未发送。

I search different ways i have found one is with FormData but i am unable to handle that in this context. 我搜索了不同的方法,发现其中一种是使用FormData,但在这种情况下我无法处理。

Controller: 控制器:

public ActionResult SaveAllFeedback(FEEDBACKVM[] fEEDBACKs)
        {
            try
            {
                if (fEEDBACKs != null)
                {
                    FEEDBACK fEEDBACK = new FEEDBACK();
                    foreach (var item in fEEDBACKs)
                    {
                        fEEDBACK.DATE = item.DATE;
                        fEEDBACK.COMMENT = item.COMMENT;
                        fEEDBACK.STUDENTID = item.STUDENTID;
                        fEEDBACK.TEACHERID = db.TEACHERs.Where(x => x.EMAIL == User.Identity.Name).FirstOrDefault().ID;
                        if (item.HOMEWORK != null)
                        {
                            fEEDBACK.HOMEWORK = SaveToPhysicalLocation(item.HOMEWORK);
                        }
                        db.FEEDBACKs.Add(fEEDBACK);
                    }
                    db.SaveChanges();
                    return Json("Done", JsonRequestBehavior.AllowGet);
                }
                return Json("Unable to save your feedback! Please Provice correct information", JsonRequestBehavior.AllowGet);
            }
            catch (Exception)
            {
                return Json("Unable to save your feedback! Please try again later.", JsonRequestBehavior.AllowGet);
            }
        }


ViewPage:

<form>
        @Html.AntiForgeryToken()
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })


        <div class="form-group">
            <input name="DATE" id="DATE" type="date" class="form-control" />
        </div>

        <table class="table table-responsive table-hover" id="table1">
            <thead>
                <tr class="bg-cyan">
                    <th></th>
                    <th>RollNumber</th>
                    <th>Comment</th>
                    <th>Homework</th>
                </tr>
            </thead>
            <tbody>
                @foreach (var item in ViewBag.students)
                {
                    <tr>
                        <td>
                            <input name="STUDENTID" type="text" value="@item.Key" hidden="hidden" />
                        </td>
                        <td>
                            <input name="STUDENTROLLNUMBER" type="text" value="@item.Value" class="form-control" readonly="readonly" />
                        </td>
                        <td>
                            <input name="COMMENT" type="text" class="form-control" />
                        </td>
                        <td>
                            <input name="HOMEWORK" type="file" class="form-control" />
                        </td>
                    </tr>
                }
            </tbody>
        </table>

        <div class="form-group">
            <div class="col-md-10">
                @Html.ValidationMessage("ErrorInfo", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <button id="saveButton" type="submit" class="btn btn-danger">Save Attendance</button>
            </div>
        </div>
    </form>



Script:

<script>

           //After Click Save Button Pass All Data View To Controller For Save Database
            function saveButton(data) {
                return $.ajax({
                    contentType: 'application/json; charset=utf-8',
                    dataType: 'json',
                    type: 'POST',
                    url: '@Url.Action("SaveAllFeedback", "Teacherss")',
                    data: data,
                    success: function (result) {
                        alert(result);
                        location.reload();
                    },
                    error: function () {
                        alert("Error!")
                    }
                });
            }
            //Collect Multiple Order List For Pass To Controller
            $("#saveButton").click(function (e) {
                e.preventDefault();


                var formData = new FormData();

                var arr = [];
                arr.length = 0;

                $.each($("#table1 tbody tr"), function () {
                   //arr.push({
                   //     //DATE: $("#DATE").val(),
                   //     //STUDENTID: $(this).find('td:eq(0) input').val(),
                   //     //COMMENT: $(this).find('td:eq(2) input').val(),
                   //     //HOMEWORK: $(this).find('td:eq(3) input').val()
                   // });

                    formData.append("DATE", $("#DATE").val());
                    formData.append("STUDENTID", $(this).find('td:eq(0) input').val());
                    formData.append("COMMENT", $(this).find('td:eq(2) input').val());
                    formData.append("HOMEWORK", $(this).find('td:eq(3) input')[0].files[0]);


                });

                var data = JSON.stringify({
                    fEEDBACKs: formData
                });

                $.when(saveButton (data)).then(function (response) {
                    console.log(response);
                }).fail(function (err) {
                    console.log(err);
                });
            });

        </script>

I just want to send multiple records with the file to the database 我只想将带有文件的多个记录发送到数据库

are you sure you want send the files???? 您确定要发送文件吗???? if yes then 如果是的话

Your form tag should be look like this 您的表单标签应如下所示

<form id="yourid" action="youraction" enctype="multipart/form-data">
  Form Component
</form>

NOTE:- enctype="multipart/form-data" tag is important 注意:-enctype =“ multipart / form-data”标签很重要

and then controller should be look like this 然后控制器应该看起来像这样

    public ActionResult YourController(FormCollection data)
    {
        if (Request.Files.Count > 0)
        {
            foreach (string fileName in Request.Files)
            {
                HttpPostedFileBase file = Request.Files[fileName];
                //you can save the file like this
                string path = Server.MapPath("~/Yourpath/FileName" + fileName.Substring(fileName.LastIndexOf('.')));
                file.SaveAs(path);
                //or you can load it to memory like this
                MemoryStream ms = new MemoryStream();
                file.InputStream.CopyTo(ms);
                //use it how you like
            }
        }            
        return View();
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何获取DropDownList选定的值,并将其发送到ASP.NET MVC 4中的控制器并使用JavaScript? - How can I get a DropDownList selected value and send it to the controller in ASP.NET MVC 4 and using JavaScript? 如何使用Asp.Net MVC Ajax的UpdateTargetId更新多个DOM元素 - How can I update multiple DOM elements using Asp.Net MVC Ajax's UpdateTargetId 使用jQuery Ajax的ASP.Net MVC 5无法发送__RequestVerificationToken - ASP.Net MVC 5 using jQuery Ajax unable to send __RequestVerificationToken 我如何创建文本框,可以使用Asp.net mvc4中的jquery ajax在数据库中保存任何输入 - how can i create textbox which can save any input in database using jquery ajax in Asp.net mvc4 如何使用jquery添加或删除部分视图Asp.net mvc? - How to add or remove partial view Asp.net mvc with jquery? 我如何使用jquery ajax调用将文件以及其他字段的数据发送到asp.net的web方法? - How can I send files along with other field's data to webmethod is asp.net using jquery ajax call? 如何从ASP.NET检索JSONdata并将其发送到jQuery? (实现FullCalendar) - How can I retrieve JSONdata from ASP.NET and send it to jQuery? (implementing FullCalendar) 如何将JavaScript添加到ASP.NET MVC视图? - How do I add JavaScript to an ASP.NET MVC View? 如何在ASP.NET MVC中将AddToFavorites链接添加到详细信息页面? - How can I add an AddToFavorites link to a details page in ASP.NET MVC? 使用ASP.NET MVC 3 **没有** jQuery - Using ASP.NET MVC 3 **WITHOUT** jQuery
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM