2011-12-23 3 views
2

Я создаю приложение, которое повышает мои навыки C#, но не академические, поэтому, пожалуйста, вы можете помочь мне почти закончить, и я хочу, чтобы это было сделано 12 января, потому что я отправляюсь в отпуск.Страница с ошибкой Когда нет результатов

Проблема заключается в том, что я хочу изменить свой код, чтобы он отображал страницу с ошибкой, когда поиск не найден, например, я искал событие, и на него появилась страница, в которой ничего не найдено, и нажмите эту кнопку, чтобы вернуться. Я использую MVC3 в C# здесь мой поиск кода из моего контроллера:

public ViewResult Index(string sortOrder, string currentFilter, string searchString, int? page) 
    { 
     using (var db = new UniversityNewsEntities1()) 
     { 
      ViewBag.CurrentSort = sortOrder; 
      ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "Name desc" : ""; 
      ViewBag.DateSortParm = sortOrder == "Date" ? "Date desc" : "Date"; 

      if (Request.HttpMethod == "GET") 
      { 
       searchString = currentFilter; 
      } 
      else 
      { 
       page = 1; 
      } 
      ViewBag.CurrentFilter = searchString; 

      var FullArticle = from a in db.NewsItems 
         select a; 
      if (!String.IsNullOrEmpty(searchString)) 
      { 
       FullArticle = FullArticle.Where(a => a.Headline.ToUpper().Contains(searchString.ToUpper())); 

      } 
      switch (sortOrder) 
      { 
       case "Name desc": 
        FullArticle = FullArticle.OrderBy(a => a.Headline); 
        break; 
       case "Date": 
        FullArticle =FullArticle.OrderBy(a => a.Posted); 
        break; 
       case "Date desc": 
        FullArticle = FullArticle.OrderBy(a => a.Posted); 
        break; 
       default: 
        FullArticle = FullArticle.OrderByDescending(a => a.Posted); 
        break; 
      } 

      int pageSize = 3; 
      int pageNumber = (page ?? 1); 
      return View(FullArticle.ToPagedList(pageNumber, pageSize)); 
     } 
    } 

Этот код полностью работает, и все, что мне нужно, это способ, который сообщит, кто когда-либо использует это, когда они ищут что-то, и если его не нашли в базе данных появится страница, в которой говорится, что ничего не найдено, пожалуйста, вернитесь через гиперссылку. Я использую ASP.NET MVC3, и это мой главный контроллер, и все работает, чтобы знать.

ответ

4

Сначала проверьте, не найдены ли какие-либо результаты. Удалить эту строку:

return View(FullArticle.ToPagedList(pageNumber, pageSize)); 

с чем-то вроде

var results = FullArticle.ToPagedList(pageNumber, pageSize); 
if (results.Any()) 
{ 
    return View(results); 
} 
return RedirectToAction("Error"); 

Вам нужно добавить новое действие контроллера в NewsController

public ActionResult Error() 
{ 
    return View(); 
} 

Все в HTML для отображения ошибок и обратно ссылка появится в новом представлении (Views/News/Error.cshtml), который вы можете попросить Visual Studio сгенерировать.

+0

Не знал, что это называется NewsController. Я обновлю свой примерный код. – harriyott

+1

Извините, сделайте общедоступный индекс ViewResult для публики. Показатель ActionResult – harriyott

+0

@ Html.ActionLink («Вернуться к странице поиска», «Индекс») – harriyott

Смежные вопросы