public ActionResult KeyWordSearch() { //搜索词 string keyword = WebHelper.GetQueryString("keyword"); WorkContext.SearchWord = WebHelper.HtmlEncode(keyword); if (keyword.Length == 0) { return(PromptView(WorkContext.UrlReferrer, "请输入搜索词")); } if (!SecureHelper.IsSafeSqlString(keyword)) { return(PromptView(WorkContext.UrlReferrer, "您搜索的商品不存在")); } //异步保存搜索历史 Asyn.UpdateSearchHistory(WorkContext.Uid, keyword); //获取当前搜索词匹配缓存结果 ProductSearchKeyInfo keyInfo = BMACache.Get(keyword) as ProductSearchKeyInfo; if (keyInfo != null && string.IsNullOrEmpty(keyInfo.Name)) //无匹配 { return(PromptView(WorkContext.UrlReferrer, "您搜索的商品不存在")); } if (keyInfo == null) //未匹配过 { keyInfo = Searches.GetProductSearchKey(keyword); if (keyInfo == null || string.IsNullOrEmpty(keyInfo.Name)) { keyInfo = new ProductSearchKeyInfo() { Name = "", keyType = -1, ToId = -1 }; } BMACache.Insert(keyword, keyInfo); } //再次判断搜索词匹配结果 if (keyInfo != null && string.IsNullOrEmpty(keyInfo.Name)) //无匹配 { return(PromptView(WorkContext.UrlReferrer, "您搜索的商品不存在")); } return(Redirect(Url.Action("categorysearch", new RouteValueDictionary { { "keyword", keyword }, { "searchKeyType", keyInfo.keyType }, { "searchKeyId", keyInfo.ToId } }))); }