我有一個獨特的場景,我希望基礎控制器可以獲取一些數據並將其存儲在列表中。這個列表應該可以像ViewData一樣從我的視圖中訪問。我將在每個頁面上使用這個列表,並希望得到一個更清晰的解決方案,而不僅僅是將它放在ViewDataDictionary中。ASP.NET MVC從控制器傳遞信息,無需ViewData,ViewModel或Session
試圖想出一個解決方案後,我想我會創建一個自定義ViewPage與屬性來保存我的列表。我的自定義ViewPage將從System.Web.MVC.ViewPage繼承。但是,我不知道MVC將視圖數據從控制器傳遞到視圖的位置。更重要的是,我如何才能將我的列表傳遞給視圖?
感謝您的幫助。
編輯....
對不起。我試圖儘可能簡化問題以避免混淆。顯然,這沒有工作:)
我在.net mvc項目中實現我自己的會話管理。當請求進入時,我的基礎控制器會檢查會話cookie是否與OnActionExecuting方法中的請求一起發送。如果發送了會話cookie,我的控制器就會訪問數據庫並檢索用戶的會話信息。會話信息(用戶標識等)被放入List對象並存儲在名爲「Sess」的屬性中。
我希望能夠從我的意見訪問的SESS列表中的元素是這樣的:
那麼,如何以及在哪裏讓我的控制器,隨手關SESS列表我的意見?
我意識到這不是通常在.net中實現自定義會話管理的方式。但是,這將是我的項目最簡單,最乾淨的解決方案。
感謝迄今爲止幫助過的所有人!
這是RenderAction可能更適合這項工作的場景之一。如果有需要在每個頁面上呈現的數據(如菜單),RenderAction使這更容易。這基本上只是一個簡單的方法來貫穿整個生命週期,因此您可以分享您的應用程序中的零食部分(菜單,廣告,小部件) – Jab 2010-04-05 15:34:49
我同意Jab,如果需要一些動態數據,請使用RenderAction如果你只想渲染一個ASCX(如果你願意的話,你也可以選擇提供一個Model到RenderPartial) – mare 2010-04-05 17:44:25