2011-06-21 2 views
2

検索結果の表を作成するWebページがあります。ユーザーはこれらのアイテムを編集できます。ユーザーがページに戻ったとき、ユーザーはそれが設計されている状態の未検索状態に戻ります。検索の状態を保存します。

私はそれらをクエリに戻したいと思っています。どのように私はそのページの状態を保存することができますか?

@model List<MyNamespace.Models.MyModel> 
@{ 
    ViewBag.Title = "Index"; 
} 
<h2> 
    Index</h2> 
@using (Ajax.BeginForm("Search", "MyController", 
    new AjaxOptions 
    { 
     HttpMethod = "GET", 
     InsertionMode = InsertionMode.Replace, 
     UpdateTargetId = "searchResults" 
    })) 
{ 
    <input type="text" name="q" data-autocomplete="@Url.Action("SearchProviders", "MyController")" /> 
    <input type="submit" value="Search" /> 
} 

<div id="searchResults" /> 

コントローラーアクション:

public PartialViewResult Search(string q) 
     { 
      var jobs = MyRepository.GetJobsByQuery(String.Format("DataProvider='{0}'", q)); 
      return PartialView("_MyPartialRowset", jobs); 
     } 

答えて

1

私は、検索フォームがHTTP GETを使用して提出したことをお勧めしたいです。検索パラメータ/条件は次のように、検索結果ページのクエリ文字列に含めることができます?

/検索Q =クトゥルフ

その後、彼らはそのようあなたの編集のすべてのリンクを作ります

/物事/ 235 /編集にreturnurl =%2FSearch%3Fq%の3Dcthulhu

W:クエリ文字列でreturnUrlがありますか?保存またはキャンセルが完了したら、returnUrlで指定されたページに戻ります。そうすれば、編集がどこから開かれても、同じロジックを使用して前のページに戻ることができます。

これの一部として、検索結果ページがキャッシュされないようにすることもできます。

更新:検索はAJAXを介して行われている場合は、ユーザーが戻ってきたときに自動的に取り込むために検索パラメータを保存するための最も簡単な方法は、クッキーに検索パラメータを配置することです

+0

私のフォームはGET経由でajaxリクエストを送信しません。私はそれが静的に検索ページに移動しないようにします。 –

+0

少し明確にさせて、ページ上の検索機能は、ajaxです。どのようにページにajax状態を保存しますか? –

関連する問題