public ActionResult AdvanceSearch(string SearchText, bool allContent, bool contains, int[] SubCategory, string KeyWords) { SearchText = SearchText.Trim(new char[] { '\"', '.' }); SearchText = "\"" + SearchText + "\""; List<TopicList> Topics = new List<TopicList>(); List<QuestionList> Questions = new List<QuestionList>(); if (SubCategory != null) { Topics = (from Item in db.TopicSearch(contains, SearchText, 0) join C in SubCategory on Item.CatID equals C select Item).ToList(); if (allContent) Questions = (from Item in db.QuestionSearch(contains, SearchText, 0) join C in SubCategory on Item.CatID equals C select Item).ToList(); } else { Topics = db.TopicSearch(contains, SearchText, 0).ToList(); if (allContent) Questions = db.QuestionSearch(contains, SearchText, 0).ToList(); } if (!string.IsNullOrEmpty(KeyWords)) { var TopicsID = db.Topics.SqlQuery("select * from Topics where [status]=0 and ID in(select topicID from KeywordOfPosts where keyWordID in (" + KeyWords + "))").Select(x => new { ID = x.ID }).ToList(); Topics = (from item in Topics join T in TopicsID on item.ID equals T.ID select item).ToList(); if (allContent) { var QuestionID = db.Questions.SqlQuery("select * from Questions where [status]=0 and ID in(select questionID from KeywordOfPosts where keyWordID in (" + KeyWords + "))").Select(x => new { ID = x.ID }).ToList(); Questions = (from item in Questions join T in QuestionID on item.ID equals T.ID select item).ToList(); } } TextWriter tw = TextWriter.Null; HtmlHelper htmlHelper = new HtmlHelper(new ViewContext( ControllerContext, new RazorView(ControllerContext, "Home", "searchAdvance", false, null), new ViewDataDictionary(), new TempDataDictionary(), tw), new ViewPage()); var QuestionView = htmlHelper.QuestionList(Questions, "نتیجه جستجو در سوالات").ToHtmlString(); var TopicsView = htmlHelper.TopicList(Topics, "نتیجه جستجو در مقالات").ToHtmlString(); return Json(TopicsView + QuestionView, JsonRequestBehavior.AllowGet); }