ASP.NET Core MVC 自动完成部分视图不显示结果

Posted

技术标签:

【中文标题】ASP.NET Core MVC 自动完成部分视图不显示结果【英文标题】:ASP.NET Core MVC autocomplete partial view not showing result 【发布时间】:2021-02-07 15:13:18 【问题描述】:

我有一个局部视图,它不会显示它从控制器获得的结果。这是在 ASP.NET Core MVC 2.1 中。

代码的基础来自here。

这是部分视图:

@model City

<!-- Modal -->
<div class="modal fade" id="myModal" role="dialog">
    <div class="modal-dialog">

        <!-- Modal content-->
        <div class="modal-content">
            <div class="modal-header">
                <h4 class="modal-title">Grad</h4>
            </div>
            <div class="modal-body">
                <form asp-controller="City" id="TestForm">
                    <div class="form-group">
                        <label class="control-label">Name</label>
                        <input asp-for="Name" class="form-control" id="CityName" />
                        <span asp-validation-for="Name" class="text-danger"></span>
                    </div>

                    <div class="form-group">
                        <label class="control-label">Postal Code</label>
                        <input asp-for="PostalCode" class="form-control" id="PostalCode" onkeypress="return isNumberKey(event)" />
                        <span asp-validation-for="PostalCode" class="text-danger"></span>
                    </div>
                    <div class="form-group">
                        <label class="control-label">Country TEST</label>
                        <input type="text" id="txtCounty" name="CountyName"/>
                        <input type="hidden" id="hfCountry" name="CountyID" />
                        <span asp-validation-for="CountryID" class="text-danger"></span>
                    </div>


                    <div class="form-group">
                        <input type="submit" value="Save" class="btn btn-default" id="SaveCity" />
                    </div>
                </form>

            </div>
            <div class="modal-footer">
                <button type="button" id="CloseCity" class="btn btn-default" data-dismiss="modal">Close</button>
            </div>
        </div>

    </div>
</div>

有问题的部分是:

<div class="form-group">
    <label class="control-label">Country TEST</label>
    <input type="text" id="txtCounty" name="CountyName"/>
    <input type="hidden" id="hfCountry" name="CountyID" />
    <span asp-validation-for="CountryID" class="text-danger"></span>
</div>

它不想显示结果它gets。

我使用的 jQuery 方法是在 Index.cshtml 脚本中:

$(document).on("focus", "#txtCountry", function (e) 
    $("#txtCountry").autocomplete(
        source: function (request, response) 
            $.ajax(
                url: '/City/AutoComplete/',
                type: "POST",
                data:  "prefix": request.term ,
                success: function (data) 
                    response($.map(data, function (item) 
                        return item;
                    ))
                
            );
        ,
        select: function (e, i) 
            $("#hfCountry").val(i.item.val);
        ,
        minLength: 1
    );
);

当我输入这段代码时:

<input type="text" id="txtCounty" name="CountyName"/>
<input type="hidden" id="hfCountry" name="CountyID" />

在部分视图之外shows 搜索到的东西。

这是它的控制器:

        [HttpPost]
    public JsonResult AutoComplete(string prefix)
    

        var countries = (from country in this._dbContext.Countries
                        where country.Name.ToLower().Contains(prefix.ToLower())
                        select new
                        
                            label = country.Name,
                            val = country.ID
                        ).ToList();
   return Json(countries); 

任何人都可以帮助我找不到答案。

【问题讨论】:

【参考方案1】:

我找到了答案。 文本显示在模态后面,所以我看不到它。

    <style>
        .ui-autocomplete 
            z-index: 5000;
        
    </style>

将它放在 _Layout.cshtml 文件中,在环境中。

<environment include="Development">
    ... some stuff...    

    <style>
        .ui-autocomplete 
            z-index: 5000;
        
    </style>

     ... some ,oe stuff...    
</environment>

【讨论】:

以上是关于ASP.NET Core MVC 自动完成部分视图不显示结果的主要内容,如果未能解决你的问题,请参考以下文章

在 ASP.NET MVC Core 3.1 中通过 jQuery 为部分视图附加 html 的问题

ASP.NET Core MVC 视图

[MVC&Core]ASP.NET Core MVC 视图传值入门

ASP.NET Core MVC RedirectToAction 不工作

Asp.net mvc和asp.net有啥区别?

[MVC&Core]ASP.NET Core MVC 视图传值入门