我怎样才能使用脚本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

回到顶部