2011-12-23 19 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)); 

:この行を削除しますリンクが新しいビュー(Views/News/Error.cshtml)に移動し、Visual Studioに生成を依頼することができます。

+0

NewsControllerと呼ばれていたことを認識していませんでした。サンプルコードを更新します。 – harriyott

+1

申し訳ありませんが、Public ViewResultインデックスをpublic ActionResultインデックスに変更します。 – harriyott

+0

@ Html.ActionLink( "検索ページに戻る"、 "Index") – harriyott

関連する問題