Пустой ввод не вернул добавленные значения
У меня проблема с моим ajax-поиском. Когда я добавляю в свою модель некоторые данные, я перехожу в представление "Индекс", где я использую свой ajax-поиск. А затем я удаляю текст из ввода и отправляю форму, индексный вид не показывает добавленные данные. Как это исправить??
Это мой SearchController
public ActionResult Index(string searhcString)
{
var competitions = from s in db.Competitions
select s;
if(!String.IsNullOrEmpty(searhcString))
{
competitions =competitions.Where(s => s.CompName.ToUpper().Contains(searhcString.ToUpper())
|| s.CompName.ToUpper().Contains(searhcString.ToUpper()));
}
return View(competitions);
}
Индекс
@using (Ajax.BeginForm("AjaxSearch", "Competitions",
new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "ajaxTable"
}))
{
<input type="text" name="q" />
<button type="submit"><img height="10" src="@Url.Content("~/Images/findBtn.png")" /></button>
}
1 ответ
В Internet Explorer Ajaxs-вызовы кэшируются по умолчанию... может быть, это ваш случай.
Вы можете отключить это глобально следующим образом:
$.ajaxSetup ({
// Disable caching of AJAX responses
cache: false
});
Или вы можете отключить его просто в этом случае добавив cache: false
в вашем AjaxOptions
За кулисами это добавит временную метку к каждому вызову, делая ее отличной от предыдущей и предотвращая кеширование.
Если это решит вашу проблему, вы могли бы сделать что-то подобное, но отправив контрольную сумму значений ваших полей (вместо отметки времени)... таким образом, публикация выполняется только тогда, когда параметры фильтра / поиска действительно изменились.