Первая отправка работает, как и ожидалось, но в следующий раз она будет полностью отправлена обратно.Я использую плагин jQuery.form, а именно вызов .ajaxSubmit(options)
для отправки формы.Существует несколько уровней div-обертки, но я отлаживаю связывание button.click и не могу понять, почему во второй раз, даже с теми же переменными, он делает полный пост, а мой частичный вид возвращается на совершенно новомpage.
здесь, buttonid
и screenid
одинаковы для обоих сообщений.Я указываю это, потому что они рассчитываются в соответствии с соглашением об именах, таким как <name>Outer
(оболочка), <name>
(цель обновления) и <name>Form
(форма для отправки)
$('.formButton').click(function () {
var buttonid = $(this).attr('id');
var screenid = $('#' + buttonid).closest('div:not(.CSRForm)').attr('id').replace('Outer', '');
//appends a hidden element so I know which button was pressed when posted
$('#' + screenid + 'Form').append('<input type="hidden" name="submitButton" value="' + buttonid.replace(screenid, '') + '" />');
$('#' + screenid + 'Form').submit();
});
..formButton
элементы не внутри формы, поэтому мне пришлось связать событие submit как таковое.Мое частичное представление возвращает только форму, а не кнопки (они являются динамическими)
, здесь .ajaxSubmit:
$('.CSRForm').submit(function () {
var needsValidation = "yes";
if (needsValidation) {
$(this).ajaxSubmit({
target: '#AccountSetup',
replaceTarget: false,
success: StepCallWithForm //to check whether the response is valid for redirecting
});
return false;
}
});
и мое действие MVC, если оно актуально:
public ActionResult AccountSetup(AccountSetupViewModel vm, string submitButton)
{
if (!ModelState.IsValid)
{
return PartialView(vm);
}
else
{
return Content(submitButton + ",AccountSetup");
}
}
Редактировать: После вставки этой строки непосредственно в мой $(function() {
:
$('#AccountSetup').ajaxForm();
я смог остановить полный постбэк.В Firebug теперь я вижу постбэк ajax на /CSR/Home/CSR?
, с которого все это начинается.Как будто форма потеряла свое свойство действия.Мои события как-то пересекаются?