我有一堆控制器,即users
,admin
和guest
我在admin
控制器上有大量功能,我希望在{users
控制器上使用1}}。由于访问控制器意味着重定向它,我希望这种行为不会发生,所以问题是
答案 0 :(得分:1)
您可以创建将执行某些逻辑的辅助类,您可以在控制器或视图中调用它们。我不知道你是否想要它。 例如,我创建了一个名为Repository(repository pattern)的文件夹,我在其中实现了呈现菜单的逻辑:
public class reposAccount
{
public static List<Sp_ShowMenuList_Result> ShowMenuList(int RoleID)
{
myEntities db = new myEntities();
List<Sp_ShowMenuList_Result> ListShowMenu = db.Sp_ShowMenuList(RoleID).ToList();
return ListShowMenu;
}
}
在视图上我只是称之为&#34;助手&#34;:
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
//do some preparatory activities, then i call the helper:
foreach (var obj in reposAccount.ShowMenuList(RoleId).Where(z => z.ParentMenu == null).OrderBy(z => z.MenuOrder).ToList())
{
@: <li>@Html.ActionLink(obj.MenuName, "Index", obj.Controler_Name)</li>
}
}
相同的行为或方法,您可以在每个控制器上调用它们。
答案 1 :(得分:0)
您可以使用
将其作为普通模型或库加载 $this->load->library()
这里有一个你可能想看的SIMILAR QUESTION,你要找的答案是第三个。
<强> 注:的强>
如果您使用的是CI3,则无效。如果您还阅读了评论,这会很有帮助。