私はasp.net mvcで新しくなっています。私は、ビューページにロールワイズ動的メニューショーを構築しようとしています。各ユーザーは複数の役割を持つことができます。 私のような結合問合せがあります。asp.net mvcのマスターレイアウトページからjoinクエリデータを格納してforeachループを使用して取得する方法
私のコントローラが参加するクエリで次のようになります。
var query= (from rMPageMap in db.RoleModulePageMaps
join userRole in db.UserRoleMaps
on rMPageMap.RoleId equals
join roleMaster in db.RoleMasters
on rMPageMap.RoleId equals roleMaster.Id
join modMaster in db.ModuleMaster
on rMPageMap.ModuleId equals modMaster.Id
join sModMaster in db.SubModuleMasters
on rMPageMap.SubModuleId equals sModMaster.Id
join pMaster in db.PageMasters
on rMPageMap.PageId equals pMaster.Id
where (userRole.UserId == appuser.Id &)
select new
{
rMPageMap.RoleId,
rMPageMap.PageMaster.Name,
roleMaster.Id,
roleName = roleMaster.Name,
modId = modMaster.Id,
moduleName = modMaster.Name,
subModuleId = sModMaster.Id,
subModuleName = sModMaster.Name,
pageId = pMaster.Id,
pageName = pMaster.Name,
parentPageId = pMaster.ParentPageId,
rMPageMap.AddData,
rMPageMap.EditData,
rMPageMap.ViewData,
rMPageMap.DeleteData,
rMPageMap.ShowInDashBoard,
rMPageMap.ShowInMenu
});
Session["rolemodulepage"] = query;
デバッグ中に私がセッション内の値を見つけることを。しかし、私はレイアウトページでforeachループを使用してこれからデータを取得することはできません。 ここでは私の検索ページを見ていますが、検索はできますが動作しません。
閲覧ページ:
@if (Request.IsAuthenticated)
{
var sessionVar = System.Web.HttpContext.Current.Session["rolemodulepage"];
foreach(var i in sessionVar) // error
{
@i.... // error
}
// So here how to retrieve data from session using foreach loop. I tried but does not work. Pls help. If you have some resource for dynamically mane show in view page pls share with me.
誰がどのようにマスターレイアウトページ内の役割ベースのユーザーによる動的なメニューを示す使用してそれを実行することを説明することができます。 Wihoutログインはサイトに入ることはできません、plsは私が理解できるように例を説明します。前もって感謝します。
ビューで使用できない匿名オブジェクトのコレクションを生成しています。ビューモデルを作成し、そのモデルをビューに渡します。 –
私を助けることができます...それを行う方法???または任意のヒント。 – user267019
これらの各プロパティを持つクラスを作成し、 'select new yourModel {RoleId = rMPageMap.RoleId、.....'など(あなたのモデルは 'IEnumerable'となります) –