是否有更好的方法来跟踪所选项目,而不是在下面的代码中实现一行导航链接。
@Html.ActionLink(
"PreApproval",
"Summary",
new { mode = "preapproval" },
new { @class = Model.Mode == "preapproval" ? "selected" : "notselected" }) |
@Html.ActionLink(
"ActionNeeded",
"Summary",
new { mode = (string)null },
new { @class = string.IsNullOrWhiteSpace(Model.Mode) ? "selected" : "notselected" }) |
...
我应该尝试包围菜单导航的功能还是这是一种标准方法?
答案 0 :(得分:2)
您可以将其封装到一个小Func<bool, string>
帮助器中,但这取决于它为您购买的内容。拥有它在你的问题中拥有它的方式使决定更接近链接,并且更清楚阅读&amp;理解,无需在调试过程中跳转到辅助方法。
如果您有20个或更多这样的链接,我可能会重构。这样,如果您的css类名称从“selected / notselected”更改为“current / notcurrent”或其他内容,则可以在1位置更新。
另一件事,在MVC4中,如果CSS类名是null或空字符串,Razor根本不会呈现class属性(将省略它)。这样你就可以把“选定”的类放在选定的链接上,并摆脱“未选择的”类。