【问题标题】:The result from autocomplete are not displayed in partial view自动完成的结果不显示在部分视图中
【发布时间】:2019-08-19 13:14:07
【问题描述】:

我正在使用一个用 C# 编写的 ASP.NET MVC 网站。我有一个自动完成的代码,它在常规视图中运行良好,但在部分视图中运行良好。在局部视图中,结果从控制器发回,数据在那里,但在局部视图中的文本框中不显示。

以下是Javascript代码:

$(document).ready(function () {
        $("#SearchBox1").autocomplete({
            source: function (request, response) {
                //alert(request.term);
                $.ajax({
                    url: "/MArrangement/EventDetailAutoView",
                    type: "POST",
                    dataType: "json",
                    async: false,
                    data: { Prefix: request.term },
                    success: function (data) {
                        response($.map(data, function (item) {
                          //alert(item.CityName);  
return { label: item.CityName, value: item.CityId };
                        }))

                    }
                })

            },
            error: function (response) {
                alert('1a');
                alert(response.responseText);
            },
            failure: function (response) {
                alert('2b');
                alert(response.responseText);
            },
            messages: {

                noResults: "", results: ""
            }
    });
});

这是局部视图:

<div>
    <label>Search by Item or Inventory Type</label><br />
    @Html.EditorFor(m => m.City.CityName, new { htmlAttributes = new { id = "SearchBox1", style = "position:absolute; z-index:11" } })
</div>

这是控制器代码:

[HttpPost]
public JsonResult EventDetailAutoView(string Prefix)
{
        List<Models.City> ObjList = new List<City>();
        Models.Mod.InventoryMain.getInventory(ref ObjList, Guid.Parse(Session["UserID"].ToString()));
        var CityList = (from N in ObjList
                        where N.CityName.ToLower().Contains(Prefix.ToLower())
                        select new { N.CityName, N.CityId }).ToList();
        return Json(CityList, JsonRequestBehavior.AllowGet);
}

方法EventDetailAutoView 正在被调用并返回正确的数据。在 Javascript 代码的成功部分中,显示了数据(我放入了一条警告语句以查看数据),但结果未显示在 SearchBox1 文本框下方。以下代码在常规视图中运行良好,但在局部视图中无法正常运行。

【问题讨论】:

    标签: c# asp.net-mvc autocomplete partial


    【解决方案1】:

    部分视图加载成功后,您应该在常规视图中添加相同的代码。

    var strUrDomainNamel =  + '/Controller/Method';
            $.ajax({
                url: strUrl,
                cache: false,
                data: {},
                type: 'POST',
                success: function (data) {
                    $(".partialLoadview").html(data);
                    $("#SearchBox1").autocomplete({
                        //Your code for autocomplete must be here. 
                    });
                },
                error: function (req, status, error) {
                    alert('error message');
                 }
            });
    

    【讨论】:

    • 谢谢?让我看看。
    猜你喜欢
    • 2015-04-07
    • 2021-02-07
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多