首页 > 解决方案 > Asp.net Mvc ajax 动作提交两次

问题描述

我正在通过带有 post url 的 ajax 提交数据,但是控制器中的这个动作不止一次像三倍一样令人兴奋我在主视图中使用父视图

@Html.Action("Driverview", "Driver")

这是我的主视图代码

<div class="modal fade" id="driver_vehicle" tabindex="-1" role="dialog" aria-labelledby="driver_vehicle" aria-hidden="true" data-backdrop="false">
<div class="modal-dialog modal-dialog-centered modal_driver_vehicle" role="document">
    <div class="modal-content">
        <div class="tab_header">
            <div class="drivers_tab selected">Drivers <span class="addition">+</span></div>
            <div class="vehicles_tab">Vehicles <span class="addition">+</span></div>
            <button type="button" class="close" data-dismiss="modal" aria-label="Close"></button>
        </div>
        <!-- if there is too much content then add this class to scroll <div class="modal-body scrollbar"> -->
        <div class="modal-body">


            @Html.Action("Driverview", "Driver")
            @Html.Action("Vehicleview", "Vehicle")

         @*@{Html.RenderPartial("~/Views/Vehicle/Vehicleview.cshtml");}*@   




        </div>
    </div>
</div>

我的 ajax 代码

$(document).keypress(function (e) {
    var key = e.which;
    if (key == 13) {
        var Driverpic = $('.avatar').val();
        var drivername = $('.DriverName').val();
        var DriverEmail = $('.DriverEmail').val();
        var StartTime = $('.StartTime').val();
        var WorkingHours = $('.WorkingHours').val();
        var LunchPeriod = $('.LunchPeriod').val();
        var DriverIsActive = $('.DriverIsActive').val();

        var postdata = {
            Driverpic: Driverpic,
            DriverName: drivername,
            DriverEmail: DriverEmail,
            StartTime: StartTime,
            WorkingHours: WorkingHours,
            LunchPeriod: LunchPeriod,
            DriverIsActive: DriverIsActive
        }
        if (drivername != "" && DriverEmail != "" && StartTime != "" && WorkingHours != "" && LunchPeriod != "" & DriverIsActive != "") {
            $.ajax({
                url: '/Driver/Driverview/',
                type: 'POST', // use Get for [HttpGet] action or POST for [HttpPost]
                contentType: 'application/json; charset=utf-8',
                data: JSON.stringify(postdata),
                success: function (data) {
                    console.log(data);
                    $('.dirveraddform').each(function () {
                        this.reset();
                    });
                    $(".select2").val('').trigger('change');
                }
            });
        }
        (e.preventDefault) ? e.preventDefault() : e.returnValue = false;
        return false;
       }
    });

Driverview 控制器

public class DriverController : Controller
{
    /*public ActionResult Driverview()
    {
        return View();
    }*/

    [HttpPost]
    public ActionResult Driverview(DriverViewModel driverdata)
    {
        // Data from submited form for add driver
        DriverViewModel ddata = new DriverViewModel
        {
            DriverName = driverdata.DriverName,
            DriverEmail = driverdata.DriverEmail,
            StartTime = driverdata.StartTime,
            WorkingHours = driverdata.WorkingHours,
            LunchPeriod = driverdata.LunchPeriod,
            DriverIsActive = driverdata.DriverIsActive
        };

        // Please Write your database code here

        string constr = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
        using (SqlConnection con = new SqlConnection(constr))
        {
            string query = "INSERT INTO Drivers(Name, Email, StartTime, WorkingHours, LunchPeriodStartTime, IsActive) VALUES(@Name, @Email, @StartTime, @WorkingHours, @LunchPeriod, @DriverIsActive)";
            query += " SELECT SCOPE_IDENTITY()";
            using (SqlCommand cmd = new SqlCommand(query))
            {
                cmd.Connection = con;
                con.Open();
                cmd.Parameters.AddWithValue("@Name", driverdata.DriverName);
                cmd.Parameters.AddWithValue("@Email", driverdata.DriverEmail);
                cmd.Parameters.AddWithValue("@StartTime", driverdata.StartTime);
                cmd.Parameters.AddWithValue("@WorkingHours", driverdata.WorkingHours);
                cmd.Parameters.AddWithValue("@LunchPeriod", driverdata.LunchPeriod);
                cmd.Parameters.AddWithValue("@DriverIsActive", driverdata.DriverIsActive);
                // customer.CustomerId = Convert.ToInt32(cmd.ExecuteScalar());
                cmd.ExecuteScalar();
                con.Close();
            }
        }


        return Json(ddata, JsonRequestBehavior.AllowGet);
    }
  }

请帮帮我

标签: jqueryajaxasp.net-mvc

解决方案


推荐阅读