台灣最大程式設計社群網站
線上人數
1609
 
會員總數:241306
討論主題:186896
歡迎您免費加入會員
討論區列表 >> ASP.NET >> MVC網頁實現顯示使用者名稱
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
MVC網頁實現顯示使用者名稱
價值 : 10 QP  點閱數:280 回應數:9

樓主

Jason
門外漢
0 30
580 122
發送站內信

請問各位大大 我希望在MVC網頁中使用者登入後可在






程式碼是寫在 _ControlSidebar 頁面 故無Controllers與Models

我有嘗試過cookie但因使用者的瀏覽器為特殊狀況無法讀取Cookie故不使用此方法
有嘗試過Session 但頁面進行重新整理後就不見了 或是過幾分鐘Session也會自動消失

請問有方式可以實現不論我網頁重新整理或是自動登入時也會顯示使用者名稱呢?

搜尋相關Tags的文章: [ html ] , [ MVC ] ,
本篇文章發表於2017-08-03 11:28
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

小魚
檢舉此回應
你那個頁面顯示之前也是先從Controller開始跑啊,
看你是跑哪個Controller就從那個Controller傳資料過去吧,
如果不要因為時間而消失也可以考慮用變數 或 static 變數
本篇文章回覆於2017-08-03 12:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

topcat
捐贈 VP 給 topcat 檢舉此回應
>>有嘗試過Session 但頁面進行重新整理後就不見了 或是過幾分鐘Session也會自動消失

Session會有Timeout的時間
但起算時間,有瀏覽的情況下,會重新開始計算

因此,如果排除Session時間已經Timeout了
重新整理會不見,這很怪,可能要注意一下造成『Session遺失』的可能原因
請參考
[ASP.NET]Session遺失的幾種可能

^_^
本篇文章回覆於2017-08-03 13:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

Jason
檢舉此回應
好的 感謝topcat大大
本篇文章回覆於2017-08-03 14:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

Jason
檢舉此回應
小魚大大 _ControlSidebar 本身是無Controller與Model的

我現在是寫在Login的Model寫一個
public static class LoginIdentity下寫一個 public static string GetCurrentUserName() 靜態呼叫來達成效果
我是參考MVC自己本身的範例製作的
本篇文章回覆於2017-08-03 14:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

小魚
檢舉此回應
_ControlSidebar 本身是無Controller的,
請問您寫的是ASP.NET MVC嗎?
不管是呼叫哪一頁畫面也是要先從controller開始跑啊
本篇文章回覆於2017-08-03 20:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
我有嘗試過cookie但因使用者的瀏覽器為特殊狀況無法讀取Cookie故不使用此方法
有嘗試過Session 但頁面進行重新整理後就不見了 或是過幾分鐘Session也會自動消失


其他大大的提醒,小喵突然想起
您說使用者瀏覽器特殊,無法讀取Cookie
由於Session機制,預設也是藉由Cookie運作的
是否因為這樣Session無法正常運作,您測試一下

雖然可以用Cookieless,不過這樣可能不安全
如果真是這樣,那麼安全體制可能需要一定程度的改寫了

請您先測測看,無法用Cookie的是否真的不能用
^.^a
本篇文章回覆於2017-08-04 08:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

史努比
檢舉此回應
to 5F

_ControlSidebar如果是個LayoutView 或是 從view中呼叫@Html.Partial(), 那確實可以無controller無Model

to 樓主

您的問題可以利用利用@Html.Action("ActionName", "ControllerName")解決,

把LayoutView裡要呈現使用者名稱的區塊, 改用@Html.Action("ActionName", "ControllerName")

這樣就可以經過Action之後, 再產生一個小區塊的HTML code來呈現UserName

本篇文章回覆於2017-08-04 09:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

小魚
檢舉此回應
To 7樓,
LayoutView是什麼意思,
好像查不到,是屬於前端的部分嗎?
另外即使是Html.Partial()還是要先經過Controller,
只是他不是專屬某個Controller的,
所以在Controller傳資料還是可以傳到頁面的。
本篇文章回覆於2017-08-04 19:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

小魚
檢舉此回應
如果你指的是類似_Layout.cshtml之類的View,
基本上還是要通過Controller的,
我也是寫過在_Layout.cshtml直接做登入判斷的。
本篇文章回覆於2017-08-04 19:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.