【发布时间】:2010-05-20 21:18:24
【问题描述】:
我只想在需要它们的页面上包含某些 .js 和 .css 文件。
例如,我的 EditorTemplate DateTime.ascx 需要文件 anytimec.js 和 anytimec.css。
每当我在具有 DateTime 类型值的模型的视图中使用 EditorFor 或 EditorForModel 辅助方法时,都会应用该模板。
我的技巧:
我已将此条件放入我的母版页的<head> 部分。它检查 ModelMetadata 中的 DateTime 类型属性。
<% if (this.ViewData.ModelMetadata.Properties.Any(p => p.ModelType == typeof(DateTime))) { %>
<link href="../../Content/anytimec.css" rel="stylesheet" type="text/css" />
<script src="../../Scripts/anytimec.js" type="text/javascript"></script>
<% } %>
这有两个问题:
如果我嵌套了 DateTime 类型的子模型,则会失败
由没有EditorFor 或EditorForModel 方法的视图不必要地触发(例如:DisplayForModel)
如何改进这项技术?
【问题讨论】:
标签: asp.net-mvc-2 master-pages editortemplates modelmetadata mvc-editor-templates