我正在尝试使用单个文本框进行搜索。
其想法是,用户可以通过客户姓名、电子邮件、电话号码或地址搜索文本框。
我正在分析我力所能及的最佳方法,我不知道你们中是否有人有机会使用类似的方法。
我不知道使用正则表达式是否可以识别用户输入的值,以了解我是否输入了电话号码、地址或电子邮件。
提前致谢,任何示例或贡献都会有帮助。
这是我的客户端类,但我的疑问是识别用户键入的文本的值。
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; }
}
谢谢
最佳答案
我愿意:
- 重写每个类中的 ToString() 以返回所需可搜索属性的合并。请参阅Here
对所有事情使用 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/