我在Google和Stackoverflow上找过了,没有找到这个问题的答案。有没有什么内置的方法可以让包按照指定的方式执行,或者有人知道有人写了一个扩展助手方法来做这件事?
发布于 2014-06-17 04:08:29
answer above很棒。我只想快速地将我的代码粘贴到这里,以便那些想要有更简洁语法的人使用。
添加新的C#类
// --------------------------------------------------------------------------------------------------------------------
// <copyright file="Scripts7.cs" company="Believe">
// http://believeblog.azurewebsites.net/
// </copyright>
// --------------------------------------------------------------------------------------------------------------------
using System.Web;
using System.Web.Optimization;
namespace MVCExtension
{
/// <summary>
/// The scripts.
/// </summary>
public static class Scripts
{
/// <summary>
/// Render scripts as deferred
/// </summary>
/// <param name="paths">
/// The paths.
/// </param>
/// <returns>
/// The <see cref="IHtmlString"/>.
/// </returns>
public static IHtmlString RenderDefer(params string[] paths)
{
return Scripts.RenderFormat(@"<script src='{0}' defer></script>", paths);
}
}
}
然后,使用Razor语法:
@Scripts.RenderDefer("~/bundles/jquery")
或Webform语法:
<%: Scripts.RenderDefer("~/bundles/jquery") %>
发布于 2017-04-05 23:06:03
您可以使用BundleTable.Bundles.ResolveBundleUrl
:
<script src="@(BundleTable.Bundles.ResolveBundleUrl("~/bundles/jquery"))" defer></script>
https://stackoverflow.com/questions/16824347
复制相似问题