我的局部视图有一个表单,点击按钮我正在进行ajax调用。控制器返回局部视图并进行渲染。这一切都很完美但是当我再次点击按钮时,没有进行ajax调用。我看到几个类似的问题,后续调用失败,但没有一个解决方案适合我。我的ajax调用代码是
$(document).ready(function () {
$('#btnUpdateRequest').click(function (e) {
e.preventDefault();
$.ajax({
url: '/Request/UpdateRequest',
cache: false,
data: $('form[id="RequestForm"]').serialize(),
type: 'POST',
success: function (data) {
$('.divPartial').html(data);
$('#ResponseContainer').addClass('show').removeClass('hide');
}
});
});
});
我的表格如下
@using (Html.BeginForm("UpdateRequest", "Request", FormMethod.Post, new {@class = "form", id = "RequestForm" }))
{
// form elements
<input class="btn btn-danger pull-right" id="btnUpdateRequest" value="Update" />
}
有什么想法吗?感谢
答案 0 :(得分:1)
您的脚本应位于主页上,而不是位于部分页面上。部分加载页面加载后,您的点击事件将不会被看到。要解决此问题,您需要将click事件与文档绑定
$(document).on('click', '#btnUpdateRequest', function (e) {
//your script here
});
答案 1 :(得分:0)
试试这个
$('#btnUpdateRequest').click(function (e) {
e.preventDefault(); //preventing the default action
var $form = $('#RequestForm');
$.ajax({
url: $form.prop('action'),
data: $form.serializeArray(),
type: 'POST',
success: function (data) {
$('.divPartial').html(data);
$('#ResponseContainer').addClass('show').removeClass('hide');
}
//you can return false;
});
});