我怎样才能使用脚本defer属性的ASP MVC 4捆绑与Scripts.Render
我已经通过谷歌和Stackoverflow看,并没有找到答案。是否有任何内置的方式来让一个bundle执行,或者有人知道有人写这样做的扩展帮助器方法?我怎样才能使用脚本defer属性的ASP MVC 4捆绑与Scripts.Render
回答:
尝试在 Codeplex Site或通过Nuget Package
网络优化升级到1.1.0版本,在1.1.0版本中,这些包括元素模板字符串。 所以,如果你想有一个脚本标签包含defer属性,你可以很容易地做到这一点:
@Scripts.RenderFormat("<script src='{0}' defer></script>","~/bundles/jquery")
和下面的标记将生成:
<script src="/Scripts/jquery-1.7.1.js" defer></script>
回答:
的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);
}
}
}
然后,使用剃刀语法:
@Scripts.RenderDefer("~/bundles/jquery")
或者网络表单语法:
<%: Scripts.RenderDefer("~/bundles/jquery") %>
回答:
您可以使用BundleTable.Bundles.ResolveBundleUrl
:
<script src="@(BundleTable.Bundles.ResolveBundleUrl("~/bundles/jquery"))" defer></script>
以上是 我怎样才能使用脚本defer属性的ASP MVC 4捆绑与Scripts.Render 的全部内容, 来源链接: utcz.com/qa/262088.html