在数据驱动菜单的数据库中存储 CSS 个标签名称...这是错误的吗?
Storing CSS Tag Names in a Database for Data Driven Menu's ... is it wrong?
我是 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; }
}
我的视图使用 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 class 之类的名称时...我不知道为什么,感觉很脏。
我或多或少地使用 Menu 项目作为在 MVC 中测试数据驱动设计概念的手段,看看哪些有效,哪些无效,但我遇到了瓶颈,我强烈怀疑像这样的组件的成功。
你的怀疑是正确的;在数据库中存储 class 个名字是错误的 - 大多数时候。可能存在将 class 名称存储在数据库中的情况(例如,如果您的站点允许其用户通过创建自己的 CSS 或修改 class 来完全自定义其外观和感觉名称),但根据您的问题判断,您没有将 class 名称存储在数据库中。
数据库是为保存数据而设计的,class 名称用于表示。通常从包含记录 ID 的字符串创建 class 或 ID 是更好的主意,如下所示:
<i class="icon_@item.IconId"></i>
或 <i class="icon_@item.Id"></i>
我是 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; }
}
我的视图使用 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 class 之类的名称时...我不知道为什么,感觉很脏。
我或多或少地使用 Menu 项目作为在 MVC 中测试数据驱动设计概念的手段,看看哪些有效,哪些无效,但我遇到了瓶颈,我强烈怀疑像这样的组件的成功。
你的怀疑是正确的;在数据库中存储 class 个名字是错误的 - 大多数时候。可能存在将 class 名称存储在数据库中的情况(例如,如果您的站点允许其用户通过创建自己的 CSS 或修改 class 来完全自定义其外观和感觉名称),但根据您的问题判断,您没有将 class 名称存储在数据库中。
数据库是为保存数据而设计的,class 名称用于表示。通常从包含记录 ID 的字符串创建 class 或 ID 是更好的主意,如下所示:
<i class="icon_@item.IconId"></i>
或 <i class="icon_@item.Id"></i>