gpt4 book ai didi

c# - 将 CSS 标签名称存储在数据驱动菜单的数据库中……这是错误的吗?

转载 作者:行者123 更新时间:2023-11-28 08:34:25 25 4
gpt4 key购买 nike

我是 MVC 的新手。我有一个元素,我试图设计一个由数据库中的记录驱动的 MVC TreeView 菜单系统。我的模型看起来像这样:

public interface IMenuItemModel
{
string Id { get; set; }
string Name { get; set; }
string ActionName { get; set; }
string ControllerName { get; set; }
string ParentName { get; set; }
string ImageCssClassName { get; set; }
string CssClassName { get; set; }
}

我的 View 使用 Razor 动态填充菜单项 ...

<li class="navbar-left">
<div class="menu-item-separator">

</div>
<div id="@item.Id" class="navbar-left menu-item">
<i class="@item.ImageCssClassName"></i>
@Html.ActionLink(item.Name, item.ActionName, item.ControllerName)
@GetDirectories(item)
</div>
</li>

我的问题是,在数据库中存储任何元素的 CSS tagName 是否违反了 MVC,或者只是一个糟糕的黑客想法?我没有在 View 之外的任何地方存储标记,我试图坚持 MVC 约定,但我想知道我是否正在沿着一条制造令人头疼的东西的道路前进,违反原则和架构,创建不必要的故障点,基本上是一个无法维护的解决方案。尤其是在数据库中存储CSS类名之类的东西时……不知道为什么,就是觉得脏。

我或多或少地使用 Menu 元素作为在 MVC 中测试数据驱动设计概念的手段,看看哪些可行,哪些不可行,但我遇到了瓶颈,我强烈怀疑像这样的组件。

最佳答案

你的怀疑是正确的;在数据库中存储类名是错误的 - 大多数时候。可能存在将类名存储在数据库中的情况(例如,如果您的站点允许其用户通过创建自己的 CSS 或修改类名来完全自定义其外观和感觉),但根据您的问题判断您没有存储由于这个原因,数据库中的类名。

数据库是为持久化数据而设计的,类名用于表示。通常从包含记录 ID 的字符串创建类或 ID 是一个更好的主意,如下所示:

<i class="icon_@item.IconId"></i><i class="icon_@item.Id"></i>

关于c# - 将 CSS 标签名称存储在数据驱动菜单的数据库中……这是错误的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28119693/

25 4 0