ピースペース

遷移する画面間で維持したいデータを画面に埋め込む

leave a comment »

ショッピングカートのように異なるURL間でデータを維持したいことはある。
一般的には、セッションを想定してセッションデータとして保持すれば良いのだろう。

ただ、(なんとなく)セッションの仕組みは重い気がして;;
簡単な画面遷移の場合にそれを使って良いのかどうかの確信が持てない場合がある。
例えば、検索に使用する条件を複数の画面をウィザード式に切り替えながら入力してもらうようなとき…

ひとつの方法は、画面切替えも含めて全てをクライアント側で完結して、
最後、「検索実行」ボタンがクリックされたときにまとめて必要データをサーバーに送る!という方針。
役割が綺麗にわかれていてとても良い気がする。
ただ、クライアントコードに長けている必要がある。MVVMのようなフレームワークも必要だろう。

画面遷移をajaxで行い、画面毎の入力を都度サーバーへポストするようにしてる場合、
保持したいデータをシリアライズして各画面にhiddenで格納すれば良い。
MVC3futures(Microsoft.Web.Mvc)をインストールするとこれを簡単に行える。

Viewには次のように格納しておくと

<div>
    @Html.Serialize("StoreCondition", Model.StoreCondition)
</div>

ControllerのActionで次のようにして取得できる

[HttpPost]
public ActionResult SearchStep2(SearchCondition condition, [DeserializeAttribute]StoreCondition storeCondition)
{

Written by nasu38yen

2014年5月28日 @ 9:47 AM

カテゴリー: 未分類

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。