【问题标题】:What is the easiest way to make autocomplete using CSHTML使用 CSHTML 进行自动完成的最简单方法是什么
【发布时间】:2020-12-29 20:35:48
【问题描述】:

几天来,我一直在尝试在 ASP.NET 中为我的项目制作自动完成功能。无论我在哪里看到他们的项目都在 .ashx 或 .aspx 文件中,而我的项目在 cshtml 中。这是一个工作项目,所以我无法更改文件格式。您可能会看到我过去通过尝试已经问过这个问题,但它不起作用。我在网上看过一些他们使用控制器的视频,但由于某种原因,我的项目没有该部分的控制器(_search)。如果有人能给我提示或提示如何使连接到数据库的最简单的自动完成功能对我来说意味着世界。在此先感谢:D

【问题讨论】:

  • 您只需要一个控制器来获取自动完成的数据。在 Web 表单中,您可以使用 ApiController,但您也可以只使用 WebMethod 来获取数据。查看这个example,它使用Web Froms .asmx WebService 和WebMethod 来获取数据。
  • @zgood 我尝试使用网络表单,但它总是让我的项目出现很多错误,问题是我刚刚加入该项目,这是我的任务,我一直坚持,所以我正在尝试找到在 .cshtml 和 .cs 作为其控制器(使用 MS 数据库服务器)中自动完成的最佳解决方案

标签: html jquery asp.net autocomplete controller


【解决方案1】:

好吧,假设您在控制器中搜索国家/地区,您可以试试这个。

public JsonResult SearchCountry(string query){
    var dbResult=_context.Countries.Where(x=>x.Name.ToLower().StartWith(query.ToLower())).Take(20).ToList();
return Json(dbResult);
}

CSHTML

<input type='text' id='autocomplete' >

Javascript:

$( "#autocomplete" ).autocomplete({
  source: function( request, response ) {
   // Fetch data
   $.ajax({
    url: "/demo/SearchCountry",
    type: 'get',
    data: {
     query: request.term
    },
    success: function( data ) {
     response( data );
    }
   });
  },
  select: function (event, ui) {
   // Set selection
   $('#autocomplete').val(ui.item.name); // In MVC5 change name to Name 
   return false;
  }
 });

【讨论】:

  • 什么是_context.Countries。
  • 另外我的项目是搜索某些诊断的名称
  • @denis 他不知道你是如何从后端检索数据的,_context.Countries 只是一个典型的例子。你没有提供任何代码,所以他不能给你具体的例子。只需将其替换为您获取数据的方式,或提供示例
  • 代码public static List&lt;string&gt; GetSearch(string searchdetails) { List&lt;string&gt; search = new List&lt;string&gt;(); string mainconn = ConfigurationManager.ConnectionStrings["ebase.database"].ConnectionString; SqlConnection sqlconn = new SqlConnection(mainconn); string sqlquery = string.Format("select Name from [dbo].[Diagnose]
  • where Name LIKE '%{0}%'", searchdetails); sqlconn.Open(); SqlCommand sqlcomm = new SqlCommand(sqlquery, sqlconn); SqlDataReader sdr = sqlcomm.ExecuteReader(); while (sdr.Read()) { search.Add(sdr.GetString(0)); } sqlconn.Close(); return search; } 这是我在数据库@zgood 中搜索名称时使用的内容
猜你喜欢
  • 2013-03-13
  • 2010-11-17
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多