2012-05-01 20 views
4

私は比較的新しいMVCユーザーです。MVCでページングを正しく機能させるのが難しいです。MVC部分的なビューによるページング

using (Ajax.BeginForm("Search", "Home", new AjaxOptions 
{ 
    HttpMethod = "GET", 
    InsertionMode = InsertionMode.Replace, 
    UpdateTargetId = "searchResults", 
})) 
{ 
    <input type="text" name="searchString" /> 
    <input type="submit" value="Search" /> 
} 

および部分図でthuslyレンダリングされる:基本的

Iは部分図でレンダリングされた検索結果の負荷を有する(SO状法を開始使用して)

@foreach (var item in @Model) 

{

<li>@Html.ActionLink(item.Name, "Result/" + item.Id, "Result")</li> 

} 

@{if(ViewBag.HasPrevious) 
    { 
     @Html.ActionLink("<<", "Search", new { searchString = ViewBag.query, page = ViewBag.CurrentPage-1 }) 
    } 
} 

@{if(ViewBag.HasNext) 
    { 
     @Html.ActionLink(">>", "Search", new { searchString = ViewBag.query, page = ViewBag.CurrentPage+1 }) 
    } 
} 

私の問題は、>>または<ですリンクは空白ページを作成して空白ページを作成し、その結果のリストを表示し、「トップ」インデックスページのマークアップを保持しません。

誰もがこれを再考しますか?

このサイトでは新規であり、私はすべての回答をupvoteします。

答えて

6

Html.ActionLinkは、通常のアンカーを生成します。このアンカーをクリックすると、ブラウザがこのリンクが指しているアドレスにリダイレクトされます。それが新しいウィンドウで部分の内容を見ている理由です。完璧に感謝を働いた

@Ajax.ActionLink(
    "<<", 
    "Search", 
    new { 
     searchString = ViewBag.query, 
     page = ViewBag.CurrentPage - 1 
    }, 
    new AjaxOptions 
    { 
     HttpMethod = "GET", 
     InsertionMode = InsertionMode.Replace, 
     UpdateTargetId = "searchResults" 
    } 
) 
+0

あなたがあなたの代わりにAJAXのリンク(Ajax.ActionLink)を使用することができますリダイレクトすることなく、ページの一部のみをリフレッシュしたい場合は!私は将来を知るために、htmlとajaxのリンクの違いは何ですか? –

+0

ノーマルリンク対Ajax。 –

関連する問題