这个答案包含两种方法。第二个可能更适合您的场景。第一个可能更适合一般的mvc项目
接近一
我建议在您的内容文件夹中创建一个有组织的结构来存储脚本和 css 文件,即
/Content/Demos/Page-Title-1/
/Content/Demos/Page-Title-2/
/Content/Demos/Page-Title-3/
和
/Content/Demos/Common/
然后制作一个包来为每个页面标题呈现脚本和 css 文件
IE。
bundles.Add(new StyleBundle("~/Demo/page-title/css").Include(
"~/Content/Demos/Page-Title-1/csscontent1.css",
"~/Content/Demos/Page-Title-1/csscontent2.css",
"~/Content/Demos/Page-Title-1/csscontent3.css",
"~/Content/Demos/Page-Title-1/csscontent4.css"));
bundles.Add(new StyleBundle("~/Demo/page-title/js").Include(
"~/Content/Demos/Page-Title-1/jscontent1.css",
"~/Content/Demos/Page-Title-1/jscontent2.css",
"~/Content/Demos/Page-Title-1/jscontent3.css",
"~/Content/Demos/Page-Title-1/jscontent4.css"));
这将允许您使用几行方法在演示页面上呈现脚本,即。
@Styles.Render("~/Demo/page-title/css");
@Scripts.Render("~/Demo/page-title/jss");
@Styles.Render("~/Demo/common/css");
@Scripts.Render("~/Demo/common/css");
当您更改 /Content/Demos/Page-Title/ 文件夹中的文件时,您必须更新全局 .asax 中的文件。这样做的好处是,如果您选择,您可以捆绑和缩小文件以节省带宽和加载第一页的时间。
接近二。
(还是使用下面的文件夹结构
/Content/Demos/Common/
和
/Content/Demos/Page-Title-1/
/Content/Demos/Page-Title-2/
/Content/Demos/Page-Title-3/)
制作一个 html 助手来引用文件夹中的所有脚本和内容
它的用法是@Asset.RenderAssets('~/folderdirectory')
助手会做类似的事情
@helper RenderAssets (stirng directory){
@* scrape the directory for all script files*
var scripts = find all scripts in the directory
@* include the script files *@
for each script
<script src=" ... .js"></script>
@* scrape the directory for all cssfiles*
var styles = all css in the directory
@* include the css files *@
for each style
<link rel='stylesheet' type="text/css" href=" ... .css">
}
这将是每个演示视图中的几行用法
@Asset.RenderAssets( '~/Content/Demos/Common')
@Asset.RenderAssets( '~/Content/Demos/Page-Title')
您可能需要也可能不需要将它与 global.asax 或 RouteConfig.cs 文件中的额外几行或两行配对(参见源代码 3)
routes.IgnoreRoute("/Content/Demos/{page}/{script}.js");
routes.IgnoreRoute("/Content/Demos/{page}/{style}.css");
创建 html 帮助程序的相关来源参见
http://weblogs.asp.net/scottgu/archive/2011/05/12/asp-net-mvc-3-and-the-helper-syntax-within-razor.aspx
要使用捆绑和缩小(scripts.render 方法),请参阅
http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification
phill haakk 说可能不需要将其与忽略路线配对!
https://stackoverflow.com/a/30551/1778606
鼓励评论和编辑。