現在、フォームは ASP.NET と AJAX を介して送信されていますが、AJAX を介してのみ送信したい (臭いがするので Ajax.BeginForm を使用したくない)。
多かれ少なかれ、関連する要素だけにフォームからデータを取り除いたことに注意してください。
@using (Html.BeginForm("Action", "Controller", FormMethod.Post))
{
<div style="width:275px;">
<a href="#" id="edit_licenses" class="grayBtn left">Edit</a>
<a href="#" id="cancel_licenses" style="display:none;" class="grayBtn left">Cancel</a>
<input id="submit_licenses" type="submit" style="display:none;" value="Save" class="redBtn right" />
</div>
}
<br />
</div>
<script type="text/javascript">
$('#edit_licenses').click(function () {
swap_licenses(false);
return false;
});
$('#cancel_licenses').click(function () {
swap_licenses(true);
$('form').resetForm();
return false;
});
$('form').submit(function (e) {
if ($(this).valid()) {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function (result) {
}
});
}
return false;
});
var swap_licenses = function (bool) {
$('.licenses').each(function () { $(this).attr('disabled', bool); });
$('#submit_licenses, #edit_licenses, #cancel_licenses').toggle();
}
</script>