通用列表MVC 3的自动完成

时间:2012-01-04 12:17:12

标签: asp.net-mvc-3

我的Model类中有一个Generic列表。我希望在我的视图中有一个带有自动完成功能的文本框,用于填充通用列表中的数据。我怎样才能做到这一点?。

1 个答案:

答案 0 :(得分:1)

为此你需要

  1. 服务器端的功能,它将返回匹配数据列表,并接受用户输入的字符串。

    像这样的东西

    public JsonResult AutoComplete(string input)
    {
         //Your code goes here
    }
    
  2. 在视图中,对于文本框,您需要绑定 KeyDown 事件。你可以为此jQuery寻求帮助。在key down处理程序中,您将对您在Controller中定义的函数进行Ajax调用。有点像这样:

    $.ajax({
      url: '@Url.Action("AutoComplete", "ControllerName")',
      data: 'input=' + sampleInput,
      success: function (data) {
        //Show the UL drop down
      },
      error: function (data) { 
        // Show Error
      }
    });   
    

    作为回应,您将获得字符串列表,您需要将其绑定到某些html元素,如“UI”。完成后,在文本框下方显示此UI并使用适当的CSS。使用jQuery,您也可以检索文本框的像素位置。

  3. 当您在MVC中开发应用程序(无视图状态)时,您无法在项目中使用Asp.Net自动完成框。我希望你明白这一点。