asp.net mvc Ajax.BeginForm дублирующие элементы - PullRequest
0 голосов
/ 18 ноября 2018

Я использую ajax для загрузки данных, используя частичное представление, и в то же время я реализовал функцию поиска.Работает нормально, но когда я оставляю текстовое поле поиска пустым, а затем нажимаю кнопку поиска, мой макет дублируется.
вот мой код

контроллер :

     public async Task<ActionResult> Index(string search)
     {
        if (!Request.IsAjaxRequest())
            return View(await _employeeRepository.GetAllEmployeesAsync());

        if (string.IsNullOrEmpty(search))
            return View(await _employeeRepository.GetAllEmployeesAsync());
        return PartialView("_EmployeeList",(await _employeeRepository
            .GetAllEmployeesAsync())
            .Where(x =>x.EmployeeName.StartsWith(search,
                    StringComparison.OrdinalIgnoreCase)));
     }


Index.cshtml

    @model IEnumerable<MvcDemo.Models.Employee>


   @using (Ajax.BeginForm("Index", "Employee", new AjaxOptions
   {
       OnFailure = "record not loaded",
       HttpMethod = "GET",
       UpdateTargetId = "employeeData",
       InsertionMode = InsertionMode.Replace
   }))
   {
      <input type="text" name="search"
        class="form-control"
        placeholder="search by name..."/>

      <input type="submit" value="Search"/>
    }
    <div id="employeeData">
        @Html.Partial("_EmployeeList", Model);
        @* i have used render partial as well*@
    </div>

   @section Scripts {
      @Scripts.Render("~/bundles/jqueryval")
      @Scripts.Render("~/bundles/jqueryajax")
   }


BundleConfig :

    bundles.Add(new ScriptBundle("~/bundles/jqueryajax").Include(
            "~/Scripts/jquery.unobtrusive-ajax.min.js"));


Layout.cshtml :

    @Scripts.Render("~/bundles/jqueryajax")


Кто-нибудь может сказать мне, где я ошибаюсь?
Оставив поле ввода пустым и нажав кнопку поиска, дублирующуюмакет.
Посмотрите на мой скриншот
экран 1
экран 2
экран 3
Любая помощьбудет высоко ценится.

1 Ответ

0 голосов
/ 19 ноября 2018

Если текст поиска пуст или пуст, вы возвращаете индексное представление, а не возвращаете частичное представление.

if (string.IsNullOrEmpty(search))
    return PartialView("_EmployeeList", (await _employeeRepository.GetAllEmployeesAsync()));
...