当使用jquery-autocomplete方法将名称从视图传递到控制器时,控制器中的字符串名称值将为空

时间:2019-07-01 13:23:24

标签: c# jquery asp.net-core asp.net-core-mvc jquery-ui-autocomplete

在我看来,我使用了自动完成功能来搜索名称。搜索名称时,它会在下拉列表中显示数据库中的每个名称。

自动完成方法的功能是:如果我在文本框中输入字母j,它应该仅显示j,但是在检入控制器时,我有一个操作方法,在搜索框中输入内容后,在操作方法中传递字符串名称,当我调试代码时,在控制器中,名称为null

我在输入request.term之类的数据时使用了data: { name: request.term },而它却使用了各自的名称,但是它必须将相同的名称传递给控制器​​,因为在我的控制器中,我编写了用于过滤并在服务中使用了包含(即类似运算符)。

值在搜索框中,在控制器中它正在传递null。请帮帮我。

我尝试过将id传递给ajax调用中的数据,但没有将其带入控制器中。它正在将null传递给action方法。


服务:

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
});

0 个答案:

没有答案