Knockout MVC中丢弃更改时的无限Ajax请求
Infinity Ajax Request When Drop Change in Knockout MVC
我在项目中使用Knockout MVC。当Drop Down更改时,我尝试将viewModel传递给。但是当我多次尝试这个方法调用并且警报"ok"调用continuesley时。有人能帮我吗??
$(function () {
$('#rmch').change(function () {
$.ajax({
url: '@Url.Action("DropChange", "Home")',
type: 'POST',
data: ko.mapping.toJSON(viewModel),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
if (data.redirect) {
location.href = resolveUrl(data.url);
}
else {
//ko.applyBindings(viewModel, document.getElementById("p_scentsFH"));
alert("Ok");
ko.mapping.fromJS(data, viewModel);
}
},
error: function (error) {
alert("There was an error posting the data to the server: " + error.responseText);
},
});
});
});
我的Json方法
public JsonResult DropChange(HotelModel hotelmod)
{
//hmodel.RoomModel = new List<RoomModel>();
//for (int i = 1; i <= hmodel.NoOfRooms; i++)
//{
// hmodel.RoomModel.Add(new RoomModel { adultsDrp = ListItems.GetList(1, 6), childDrop = ListItems.GetList(0, 5) });
// //hmodel.RoomModel.Add(new RoomModel { });
//}
var jjj = JsonConvert.SerializeObject(hotelmod);
return Json(hotelmod);
}
我的视图
<div class="search-tab-content">
<div class="tab-pane fade active in" id="hotels-tab">
<form id="searchfrm">
<div class="title-container">
<h2 class="search-title">Search and Book Hotels</h2>
<p>We're bringing you a new level of comfort.</p>
<i class="soap-icon-hotel"></i>
</div>
<div class="search-content">
<h5 class="title">Where</h5>
<label>Your Destination</label>
@ko.Html.TextBox(m => m.Destination, new { @class = "input-text full-width", @placeholder = "Any destination, country, city code" })
@ko.Html.Hidden(new { @Id = "DesCode" }).Value(m => m.DesCode)
<hr>
<h5 class="title">When</h5>
<div class="row">
<div class="col-xs-4">
<label>Check In</label>
<div class="datepicker-wrap">
@ko.Html.TextBox(m => m.CheckInDate, new { @class = "input-text full-width" })
</div>
</div>
<div class="col-xs-4">
<label>Check Out</label>
<div class="datepicker-wrap">
@ko.Html.TextBox(m => m.CheckOutDate, new { @class = "input-text full-width" })
</div>
</div>
<div class="col-xs-4">
<label>ROOMS</label>
<div class="selector">
@ko.Html.DropDownList(m => m.RoomList, new { @class = "full-width jkl", @id = "rmch" }, "Text", "Value").Value(m => m.NoOfRooms)
</div>
</div>
</div>
<hr>
<div id="p_scentsFH">
@using (var rmModel = ko.Foreach(m => m.RoomModel))
{
<h5 class="title">Room 1</h5><div class="row">
<div class="col-xs-3">
<label>ADULTS</label>
<div class="selectorgen">
@rmModel.Html.DropDownList(m => m.adultsDrp, new { @class = "full-width" },"Text","Value").Value(m=>m.adultscount)
</div>
</div>
<div class="col-xs-3">
<label>KIDS</label>
<div class="selectorgen">
@rmModel.Html.DropDownList(m => m.childDrop, new { @class = "full-width" }, "Text", "Value").Value(m => m.childcount)
</div>
</div>
<div class="agecls">
@using(var chage=rmModel.Foreach(m=>m.childage))
{
<div class="col-xs-3">
<label>Child</label>
<div class="selectorgen">
@chage.Html.DropDownList(m => m.ageDrop, new { @class = "full-width" },"Text","Value").Value(m=>m.Age)
</div>
</div>
}
</div>
</div><hr>
}
</div>
<button type="submit" class="full-width uppercase">Search Cheap Hotels</button>
</div>
}
</form>
</div>
</div>
我相信,当重定向没有发生时,视图模型绑定会导致下拉列表值发生更改,因此更改下拉列表事件会一次又一次地触发。确保您没有从ajax调用更改下拉列表中所选的项目。
相关文章:
- jquery/ajax无限滚动事件
- 我如何发送AJAX请求的内容是通过无限滚动加载的
- jQuery Ajax 无限滚动读取 PHP
- 无限ajax滚动未加载javascript
- 使用KnockoutJS和单个AJAX调用进行无限滚动
- 通过 ajax 传递“无限”值
- 使用服务器端分页链接进行 ajax 无限滚动
- 销毁 AJAX 页面上的无限滚动更改
- 仅将侦听器应用于具有 AJAX 无限滚动的新项
- 是什么在我的 ajax 代码中创建无限循环
- 如何在用户离开页面时保存无限堆栈的 AJAX 内容
- 其他 Ajax 脚本在使用 WordPress jetpack 无限滚动时挂起
- AJAX 无限滚动以预加载内容
- 使用 Ajax 和可能的 jquery 进行无限滚动
- 使用Javascript和Ajax为手机提供无限滚动
- Knockout MVC中丢弃更改时的无限Ajax请求
- 如何绑定和解除绑定无限ajax滚动,以便其他jQuery正常工作
- 无限ajax滚动不工作在Django
- 无限ajax滚动与灯箱
- 银色条纹+无限Ajax滚动:无左不断被添加到页面