2017-10-18 54 views
0

如何將部分視圖中的值傳遞給_layout頁面?我試圖通過ViewBag傳遞值。但是,它不起作用。將.net部分視圖中的值傳遞給.net核心中的佈局視圖

+2

通過從視圖*傳遞值*是什麼意思? *控制器不應該將值傳遞給視圖?目前還不清楚你想要做什麼。 – David

+0

@大衛, 我有一個_loginpartial視圖與下面的行。 @ UserManager.GetUserAsync(User).Result.Location //位置是AspNetUsers表中的自定義列。 我想根據用戶位置隱藏/顯示佈局頁面中的一些鏈接。 因此,我沒有再次在Layout頁面中檢索用戶位置,而是想將此值保存到_loginpartial中的變量並在Layout頁面中訪問它。 – Robin

+1

獲取控制器中的值並將其存儲在類似於「ViewBag」或「ViewData」的內容中。然後它將可用於生成的構造視圖的任何組件。視圖不應該*提取*數據,它們應該被控制器提供他們需要的數據。 – David

回答

0

儘管我不推薦問題中描述的模式,但您可以將數據存儲在HttpContext.Items字典中,並且它應該在任何地方都可用。唯一的問題是執行順序,我認爲在這種情況下很好。

我不推薦這樣做的原因是組件的責任在這裏看起來有些不尋常:佈局頁面期望部分視圖設置一些數據,我覺得很奇怪。它確實應該在控制器或過濾器中完成。