javascript - 使用单个文本框进行高级搜索

标签 javascript asp.net-mvc asp.net-mvc-5

我正在尝试使用单个文本框进行搜索。

其想法是,用户可以通过客户姓名、电子邮件、电话号码或地址搜索文本框。

我正在分析我力所能及的最佳方法,我不知道你们中是否有人有机会使用类似的方法。

我不知道使用正则表达式是否可以识别用户输入的值,以了解我是否输入了电话号码、地址或电子邮件。

提前致谢,任何示例或贡献都会有帮助。

这是我的客户端类,但我的疑问是识别用户键入的文本的值。

public class Client
    {
        [Key]
        public int Id { get; set; }

        [StringLength(50)]
        public string FirstName { get; set; }

        [StringLength(50)]
        public string MidName { get; set; }

        [StringLength(50)]
        public string LastName { get; set; }

        [StringLength(50)]
        public string Email { get; set; }

        public virtual ICollection<Phone> Phones { get; set; }

        public virtual ICollection<Address> Address { get; set; }
    }

谢谢

最佳答案

我愿意:

  1. 重写每个类中的 ToString() 以返回所需可搜索属性的合并。请参阅Here
  2. 对所有事情使用 linq:

    字符串搜索文本;

    返回clients.Where(x => x.ToString().Contains(searchText) || x.Address.Any(a => a.ToString().Contains(searchText) || x.Phones.Any( a => a.ToString().Contains(searchText));

您实际上并不需要通过尝试找出要搜索的类型来使其复杂化。如果它有@,它将在电子邮件上匹配,如果它是电话号码,它将在电子邮件上匹配。

关于javascript - 使用单个文本框进行高级搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57504163/

相关文章:

jquery - ASP.NET MVC ModelBinder 无法处理 GET 请求和/或 jQuery AJAX?

c# - 如何忽略 MVC 路由中的所有特定文件扩展名

c# - 如何修复Web安装程序 "The error code is 2727"

javascript - 我可以如何操作用户编辑输入字段后显示的字符

javascript - 如何更改一条线但保留另一条线?

javascript - 转换每个字符只有 8 位的 UTF-8 字符串

asp.net-mvc - 在 ASP.NET MVC 中使用 Entity Framework 是否允许我的 Web 项目在不同的数据库供应商上工作

javascript - JQuery 相同的类不同的选择

c# - 将 JSON 数组绑定(bind)到 ASP.NET MVC 3 中的列表的问题模型

forms-authentication - 授权时 ASP.NET MVC5 应用程序抛出 NullReferenceException