0

データが年固有の MVC アプリを開発しています。そのため、データを照会する前に、稼働年が設定されていることを確認する必要があります。以前にこの質問をして、ここで回答を受け取りました。これは、ユーザーを別のページにリダイレクトするのに問題なく機能します。ただし、セッションが期限切れになるため、これには問題があります (無期限セッションにしたくありません)。したがって、セッションが期限切れになるまで非アクティブで、ユーザーが操作の途中である場合、年を選択するために別のページにリダイレクトされるため、ページがリセットされることは望ましくありません。

その長い紹介の後 (申し訳ありませんが、何が必要かを明確にしたかったのです)、セッションが null の場合にモーダル ダイアログを作成することは可能ですか?

例えば:

if (Session["Year"] != null)
{
    ...
}
else
{
    modal dialog to set year and go on our merry way...
}

jquery UI の例を見ましたが、私の特定の難問に対処していないようです。

助けてくれてありがとう。

4

2 に答える 2

1

はい、これがダイアログ用の jQuery UI コンポーネントです。ただし、それをビューに配置する必要があるため、そこで論理テストを実行できるように、持っているセッション値をビューに渡す必要があります。

http://jqueryui.com/demos/dialog/

アップデート:

ダイアログ ボックスを保持するビューを作成できます。次に、すべてのリクエストで実行される OnActionExecuted Controller アクションをオーバーライドします。このアクションでは、セッション チェックを行います。

次に、ViewBag を使用してマスター/レイアウト ビューに値を渡します。そのビューで、ViewBag 値の論理チェックを実行し、ダイアログ ボックスを適切に表示します。

if (Session["Year"] != null)
{
    ...
}
else
{
@Html.Raw(@"
<script type='text/javascript'>
   $(document).ready(function(){ 
      $('#dialogID').dialog('open'); //I am not sure if this is proper way to open it
   });
</script>")
}
于 2012-08-08T13:31:33.260 に答える
1

これは、javascript 変数へのサーバー側の割り当てを組み合わせて、javascript で行うことができます。たとえば。

<script>
    $(function(){ 
        var showDiag = @(ViewData["Year"] ?? false);
        if(showDiag){
            //code to show
        }
    });
</script>
于 2012-08-09T14:47:37.877 に答える