При передаче имени из представления в контроллер с помощью метода jquery-autocomplete значение имени строки в контроллере становится нулевым - PullRequest
0 голосов
/ 01 июля 2019

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

Особенность метода автозаполнения такова: если я введу букву j в текстовое поле, она должна отображать только j, но при проверке в контроллере у меня есть метод действия, и я передавал имя строки внутри метода действия после ввода в поле поиска, и когда я отлаживал код, в контроллере имя было null.

Я использовал request.term в моих данных, как data: { name: request.term } при наборе имени, и оно принимало соответствующее имя, но оно должно было передать то же самое контроллеру, потому что в моем контроллере я написал методы фильтрации и использовалсодержит, т.е. как оператор, в сервисе.

Какое бы значение не находилось в поле поиска, в контроллере оно передавало null.Пожалуйста, помогите мне.

Я пытался передать id данным в вызове ajax, но он не принимал его в контроллере.Он передавал null методу действия.


Служба:

public async Task<List<ManagerAllocationModel>> GetManager(string name)
{
    List<ManagerAllocationModel> managerList = new List<ManagerAllocationModel>();
    managerList = _mapper.Map<List<EmployeeHierarchy>, List<ManagerAllocationModel>>(await _employeeHierarchyService.ListAll());
    managerList.Where(x => x.Tea[enter image description here][1]mManagerName.StartsWith(name));
    return managerList;
}

Контроллер:

[HttpPost]
public async Task<List<ManagerAllocationModel>> getmanagerName(string name)
{
    var manager =await  employeeService.GetManager(name);
    return manager;
}  

Вид:

<label asp-for="@Model.managerAllocation.TeamManagerName"  name="name" id="name" class="control-control">TeamManager Name</label>
<input asp-for="@Model.managerAllocation.TeamManagerName" class=" form-control " required="required" placeholder="Enter Manager Name">
<span asp-validation-for="@Model.managerAllocation.TeamManagerName"  id="namerequired"class="text-danger"></span>


 $("#managerAllocation_TeamManagerName").autocomplete({
    source: function (request, response) {
        $.ajax({
            url: "/Employee/getmanagerName/",
            data: { name: request.term }, 

            type: "post",
            contentType: "application/json;charset=utf-8",
            success: function (data) {     
                response($.map(data, function (item) {
                    console.log(item);
                    return { label: item.teamManagerName, value: item.teamManagerName };

                }))
            },
        });
    },
    minlength: 3
});
...