【发布时间】:2016-08-07 21:43:59
【问题描述】:
我使用 Nancy 已经有一段时间了,我认为我已经把自己变成了一个盒子,无法跳出它来思考我在使用 Nancy 时的错误。我确实看到的选项我不太喜欢。如果有一些我错过的功能,有人可以帮助我,或者我没有列出的替代方法,任何帮助将不胜感激。
问题设置
我正在创建一个小型 Web 应用程序,其中有正常的固定装置。布局页面和内容页面,甚至还有一些局部视图。
我想创建一个动态菜单系统,该系统将根据登录的用户更改其菜单选项和总体布局。因此,主要工作是会计的用户可能会看到更多的计费功能,而安排计划的人可能会看到更多的计划功能等。
问题本身
问题是,我在使用 Nancy 和 TinyIoC 启动动态菜单时遇到了困难。
最初我想,“我只需设置一个菜单模块,和 RenderAction 或等效的,我会很高兴的”,除了南希不喜欢这样。这很好,因为我的替代方案是......在代码 sn-p 的布局页面上与 TinyIoC 交谈,该代码将解析我的 IMenuManager,我可以在那里使用传入的用户 ID 或你有什么来调用它的 GenerateMenu 函数。我将获取返回的对象并将其传递给 @Html.Partial('path', model) 我是金子
除非你真的不能以这种方式与 TinyIoC 交谈。除非它是 Nancy 模块本身的扩展,否则您无法轻松访问 Resolve an Interface to an implementation。
我考虑过的其他选项
- 我曾考虑使用 JavaScript / jQuery 对 MenuModule 进行 AJAX 调用并以这种方式获取信息,但这感觉很脏,我不喜欢这样做。
- 我考虑过的另一个选项是使用 PageModel.MenuModel 和 PageModel.RealPageModel 包装所有向下的页面模型。这也觉得很脏,我不是粉丝。
还有其他一些我没有看到的选项吗?我是否将不得不放弃 TinyIoC 并以另一种方式重新实现整个事情?
【问题讨论】:
-
不是,个人项目。
-
@un-lucky 我无法想象你为什么认为这是一个家庭作业......这显然是一个带着明确目标编写实际代码的人,他已经解释了问题域清楚地知道他们到目前为止所做的尝试......