DisplayTemplate 代码需要修复/反馈
我有一个名为 _FooterMenu 的 DisplayTemplate,其中对下面的动态页脚菜单进行了编码。
没什么要问的
有什么办法可以简化 DisplayTemplate 代码吗?
我应该使用 HtmlHelper 来隐藏逻辑吗?
布局页面中的代码
@Html.DisplayForModel("_FooterMenu")
//DisplayTemplate 代码。
@model HomeViewModel
@{var distMenu = Model.FooterMenu.Where(c => c.Title != null).Select(m => new {Title = m.Title}).Distinct() ;}
@foreach (var i in distMenu)
{
<div class="linksarea">
<h5>@i.Title</h5>
<ul>
@foreach (var item in Model.FooterMenu.FindAll(x => x.Title == i.Title))
{
<li>
@Html.ActionLink(@item.DisplayName, "Page", "Home", new { name = @item.UrlName }, null)
</li>
}
</ul>
</div>
}
I have a DisplayTemplate called _FooterMenu in which below dynamic footer menu is coded.
Few things to ask
Is there any way to simplify DisplayTemplate code?
Should I used HtmlHelper to hide logic?
Code in layout page
@Html.DisplayForModel("_FooterMenu")
//DisplayTemplate code.
@model HomeViewModel
@{var distMenu = Model.FooterMenu.Where(c => c.Title != null).Select(m => new {Title = m.Title}).Distinct() ;}
@foreach (var i in distMenu)
{
<div class="linksarea">
<h5>@i.Title</h5>
<ul>
@foreach (var item in Model.FooterMenu.FindAll(x => x.Title == i.Title))
{
<li>
@Html.ActionLink(@item.DisplayName, "Page", "Home", new { name = @item.UrlName }, null)
</li>
}
</ul>
</div>
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为优化代码的关键是为页脚菜单项使用“GroupBy”,这将减少对 2 个 ForEach 循环的需求。我模拟了您的 MVC 应用程序,这是我想出的代码片段:
希望这会有所帮助。
I think the key to optimizing your code is to use a "GroupBy" for your Footer Menu Items, this will alleviate the need for 2 ForEach loops. I mocked up your MVC app, here is the code snippet I came up with:
Hope this helps.