Я использую 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
Любая помощьбудет высоко ценится.