2011-12-23 3 views
2

나는 C# 기술을 학문적으로 향상시키는 응용 프로그램을 만들려고합니다. 그래서 제발 거의 끝나지 않았고 12 월 1 일에 휴가가되기 때문에 끝내도록 도와주세요.오류 페이지 결과가 나타나지 않을 때

문제는 코드를 수정하여 검색을 찾을 수 없을 때 오류 페이지를 표시하고 이벤트를 검색하고 아무 것도 발견되지 않는다는 페이지가 나타나 다시 돌아가는 것을 나타냅니다. 내가 여기에 C#으로 MVC3을 사용하고 나의 컨트롤러에서 내 검색 코드 :

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

처음으로 결과가 있는지 확인하십시오. 당신은 오류와 뒷면을 표시하기위한 모든 HTML

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

NewsController가

에 새로운 컨트롤러 액션을 추가해야합니다

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

처럼

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

뭔가이 줄을 제거 링크는 Visual Studio에서 생성하도록 요청할 수있는 새로운보기 (Views/News/Error.cshtml)로 이동합니다.

+0

NewsController라는 것을 알지 못했습니다. 예제 코드를 업데이트하겠습니다. – harriyott

+1

죄송합니다, 공용 ViewResult 인덱스를 public ActionResult 인덱스로 변경하십시오. – harriyott

+0

@ Html.ActionLink ("검색 페이지로 돌아 가기", ​​"Index") – harriyott

관련 문제