Я этот код в index.cshtmlJQuery называется метод в контроллере (MVC) дважды
<a href='@Url.Action("Create", "ShippingMethods")' data-toggle="modal" data-target=".modal" data-wrap="modal-lg"><i class="fa fa-edit fa-fw"></i> Edit</a>
<div class="modal fade" tabindex="-1" role="dialog" aria-labelledby="Modal">
<div class="modal-dialog">
<div class="modal-content">
<!--Content Inside Here-->
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div>
И мой Jquery:
'use strict';
(function ($) {
/* Ajax Form Submit for Modal */
var ajaxFormSubmit = function() {
var $form = $(this);
$.ajax({
url: $form.attr('action'),
type: $form.attr('method'),
data: $form.serialize(),
beforeSend: function() {
$('.spinner').addClass('fa fa-spinner fa-pulse fa-2x fa-fw');
}
})
.done(function (data) {
var $target = $($form.attr('data-target'));
if (data.status == true) {
$('.modal').modal('hide');
location.reload();
} else {
$target.replaceWith(data);
}
});
return false;
}
/* Empty Modal Content on Hide */
$('.modal').on('hide.bs.modal', function (e) {
$('.modal-content').empty();
$('.modal-dialog').removeClass('modal-lg modal-sm');
});
$('.ShippingMethods')
.on('click', 'a[data-toggle="modal"]', function() { // show modal
$('.modal-dialog').addClass($(this).attr('data-wrap'));
$('.modal-content').load($(this).attr('href'));
})
.on('submit', '.ajaxForm', ajaxFormSubmit); // modal ajax form submit
})(jQuery);
Я задавался вопросом, почему метод контроллер дважды вызывал вызов. Когда на самом деле я только щелкнул его один раз. Эта функция вызывалась дважды каждый раз, когда я нажимал кнопку.
public ActionResult Create()
{
var whs = new PluginManager().GetAllData();
ViewBag.PluginId = new SelectList(whs, "PluginId", "Description");
return View();
}
У кого-нибудь есть идея, почему это действует странно? Я не могу понять, в чем проблема? Заранее спасибо за помощь и советы :)
я назвал preventDefault, но по-прежнему вызывая метод дважды. Тот же результат. – Jen143
@ Jen143: Любые ошибки в консоли? Сделайте 'console.log' внутри прослушивателя кликов, чтобы определить, вызывается ли фактический прослушиватель дважды. Прокомментируйте вызов 'load' - вы вдруг не видите никаких звонков вообще или того, что должно прибывать откуда-то еще? –
Ничего себе. Благодарю. Я прокомментировал звонок для загрузки, и теперь он работает нормально. Он вызывает только один раз. – Jen143