0

左側のサイドバーに多数のメニューリンクを表示するMVC4サイトがあります。ユーザーがサインインすると、誰かを検索するページに移動します。誰かを選択してフォームを送信すると、idCookieが設定されます。

これidは、サイドバーメニューのさまざまなリンクが有効になっているかどうかを決定します。これは、それらのリンクがもたらす多くのアクションに必要なパラメーターであるためです。メニュー自体は、サイトのすべてのページにあるため、_Layout部分で設定されます。

<div id="contentwrapper">
    <div id="left-menu">
        @Html.Action("Display", "Menu", new { Area = "" })
    </div>
    <div id="mainbody">
        <section>
            @RenderBody()
        </section>
    </div>
    <div id="footer">
    </div>
</div>

Displayサイドバーメニューを表す部分ビューを返します。_Layoutでメニューサイドバーをレンダリングしているので、操作するモデルがありません。Cookieを使用 せずにメニューの部分ビューにパラメーターを取得する方法はありますか?

4

1 に答える 1

1

隠しフィールドとビューバッグを使用します

Public ActionResult Index(){
ViewBag.id = // set your id initially 

}

javascript/jquery が問題ない場合...

$(function(){
var myID = @Html.Raw(Json.Encode(ViewBag.id));
$('#hidID').val(myID);
});

HTML

<input type="hidden" name="hidID" id="hidID" />

次に..表示アクション

Public ActionResult Display(int hidID){    
// this will be current id,
// if id is reset , pass the new one to viewbag , jquery will reset hidden field on client
}
于 2013-01-10T21:07:17.433 に答える