Я отправляю данные через ajax с post-url, но это действие в контроллере волнует более одного раза, например, трижды. Я использую родительское представление в главном представлении с помощью
@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);
}
}
Помогите мне, пожалуйста