我发现在我们的代码在此之后,我意识到了一些东西:在哪里把共享项目(如菜单)的逻辑与MVC3?
- “得到它现在完成了,得到它的权利后”有一个限制
我真的不知道这与去MVC3
@model int @using Company.Core.Logic.Financial @using Company.Core.Repositories @{ var values = from AccountPlan e in new AccountPlanRepository().GetItemList() where String.IsNullOrEmpty(e.PromoCode) // filter out promotional plans select new { id = e.AccountPlanId, name = e.Description }; var items = new SelectList(values, "id", "name", Model); } @Html.DropDownListFor(m => m, items)
这是专门的编辑模板(@Html.EditorFor(m => m.AccountPlan)
),但它让我意识到,我不知道这样的代码都像菜单建设者共同的东西。如果您使用MVC3的布局(而不是谁),那么基于用户角色在顶层构建菜单的代码在哪里?我认为视图代码将通过预构建的菜单项和HTML进行迭代,但由于模型是强类型的,这是否意味着所有模型都需要了解菜单项?
有一次,这是Webforms对我来说更有意义的地方,因为这会在CodeBehind中进行,但我真的想摆脱这种情况。
编辑:即使我开始问关于布局代码,我假设它也适用于EditorTemplates和DisplayTemplates。如果这是不正确的假设,请让我知道这些应该去的地方。
edit2:我最终想要的是有一个干净的,甚至可能依赖注入的地方来运行从EditorTemplate
调用的代码。也许这是EditorTemplate立即调用RenderAction的情况?
我真的很喜欢这个。 –
这基本上就是我如何处理我的主菜单,以及在不同视图中呈现的其他几个“窗口小部件”类型的HTML块。这种模式运作良好。 – StanK