0

シナリオは次のとおりです-asp.netMVCをjquerymobileで使用-両方の初心者

問題:戻るボタンは、 POSTで作成されたページにGETを送信します

シナリオ:

  1. ページ1には検索ボックスと送信ボタンがあります-clck送信はページ2にPOSTします。
  2. ページ2には検索結果のリンクのリストがあります。検索結果をクリックして、ページ3に移動します。
  3. 3ページの「戻る」ボタンをクリックすると、GETが2ページに送信されます。

SafariとFirefoxで試してみました。戻るボタンにGETを表示するFirebug。

これは一般的ですか?これにどのように対処しますか?

A)フォームを送信するときに、どういうわけかテキストボックスをURLに追加します(トリッキーに聞こえます)

B)HTTPPostとHTTPGetの両方で検索ページアクションをマークしますか?次に、検索テキストをセッションまたはどこかに保存しますか?

C)より良いオプションはありますか?

アドバイスをいただければ幸いです。

4

2 に答える 2

0

私はこれに間違った方法でアプローチしたかもしれないと思います。一般に、POSTはサーバーの状態を変更する可能性のある要求(データベースの更新など)に使用する必要があり、GETは読み取り専用操作に使用する必要があります。

この場合、これは読み取り専用アクションであるため、HTTPGetが使用する正しいhttp動詞です。Razorを使用しているとすると、フォームアクションは次のようになります。

@using(Html.BeginForm("Index", "Search", FormMethod.Get))
//generates an url like /search?q=searchterm
于 2012-12-06T02:02:10.130 に答える
0

ページ1とページ2に同じURLを設定し、基本的に最初のページに「ポストバック」して、逆方向に戻ると最初の元の投稿されていないページに戻るようにしたいようです。

これは、[HttpPost]属性と[HttpGet]属性を使用して実現できます

あなたのコントローラーであなたはこれを持つことができます

[HttpGet]
public ActionResult Search()
{
   //action result get code
}

[HttpPost]
public ActionResult Search()
{
   //your result post code here
}
于 2012-12-06T01:57:04.247 に答える