溫馨提示×

autocomplete在asp.net mvc中的應用

小樊
124
2024-12-13 18:32:29
欄目: 編程語言

在ASP.NET MVC中,自動完成(Autocomplete)是一種提高用戶體驗的功能,它允許用戶在輸入時實時獲取建議列表。這通常用于搜索、數據篩選等場景。要在ASP.NET MVC中實現自動完成功能,可以使用jQuery UI的Autocomplete插件。

以下是在ASP.NET MVC中實現自動完成的步驟:

  1. 引入必要的庫文件

在項目中引入jQuery、jQuery UI和Bootstrap的庫文件。將以下代碼添加到_Layout.cshtml文件的<head>部分:

<!-- jQuery -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

<!-- jQuery UI -->
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>

<!-- Bootstrap -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
  1. 創建一個控制器方法來獲取數據

在控制器中創建一個方法,用于返回自動完成所需的數據。例如,假設我們有一個Products表,我們可以創建一個名為GetProductSuggestions的方法:

public class HomeController : Controller
{
    private readonly ApplicationDbContext _context;

    public HomeController(ApplicationDbContext context)
    {
        _context = context;
    }

    public ActionResult GetProductSuggestions(string term)
    {
        var products = _context.Products
            .Where(p => p.Name.Contains(term))
            .Take(10)
            .ToList();

        return Json(products, JsonRequestBehavior.AllowGet);
    }
}
  1. 在視圖中添加自動完成輸入框

在需要實現自動完成的視圖(例如,Index.cshtml)中,添加一個輸入框,并為其添加ui-autocomplete類和autocomplete事件。同時,引入一個用于存儲自動完成建議的<ul>元素。

<input type="text" id="product-suggestions" />
<ul id="suggestions"></ul>
  1. 使用jQuery UI的Autocomplete插件

在視圖的<script>標簽中,編寫以下代碼以初始化自動完成功能:

$(document).ready(function () {
    $("#product-suggestions").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "/Home/GetProductSuggestions",
                type: "GET",
                dataType: "json",
                data: { term: request.term },
                success: function (data) {
                    response($.map(data, function (item) {
                        return {
                            label: item.Name,
                            value: item.Name
                        };
                    }));
                }
            });
        },
        minLength: 2,
        select: function (event, ui) {
            $("#product-suggestions").val(ui.item.label);
            return false;
        }
    });
});

現在,當用戶在輸入框中輸入時,將自動顯示與輸入內容匹配的產品建議列表。用戶可以從列表中選擇一個建議,將其插入到輸入框中。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女