簡體   English   中英

使用單個文本框進行高級搜索

[英]Advanced search with a single textbox

我正在嘗試使用單個文本框進行搜索。

這個想法是用戶可以通過客戶名稱、電子郵件、電話號碼或地址搜索文本框。

我正在分析我力所能及的最佳方式,我不知道你們中是否有人有機會使用類似的方法。

我不知道使用正則表達式是否可以識別用戶輸入的值,以了解我是否輸入了電話號碼、地址或電子郵件。

提前致謝,任何示例或貢獻都會有所幫助。

這是我的客戶端類,但我懷疑是識別用戶鍵入的文本的值。

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() 以返回所需的可搜索屬性的合並。 這里
  2. 對所有事情使用 linq:

    字符串搜索文本;

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

您真的不需要通過嘗試找出要搜索的類型來使其復雜化。 如果它有一個@,它將匹配電子郵件,如果它是一個電話號碼,它將匹配它。

你好,我用@Tomato32 的例子解決了

  • 這只是文字 = 全名
  • 只有數字 = 電話
  • 只有數字和長度為 5 = 郵政編碼
  • 文字 + 數字 = 地址

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM