Пустой ввод не вернул добавленные значения

У меня проблема с моим 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

За кулисами это добавит временную метку к каждому вызову, делая ее отличной от предыдущей и предотвращая кеширование.

Если это решит вашу проблему, вы могли бы сделать что-то подобное, но отправив контрольную сумму значений ваших полей (вместо отметки времени)... таким образом, публикация выполняется только тогда, когда параметры фильтра / поиска действительно изменились.

Другие вопросы по тегам