【问题标题】:How to use loadjsfile in .NET Core in a View class?如何在 View 类的 .NET Core 中使用 loadjsfile?
【发布时间】:2016-12-24 10:46:28
【问题描述】:

我有以下从 .NET 迁移到 .NET Core 的代码。

不幸的是,javascript 文件没有被 loadjsfile 加载。我可以使用什么来将这些 javascript 文件加载到我的视图类中?

<script>
    function loadjsfile(filename) {
        var fileref = document.createElement("script");
        fileref.setAttribute("type", "text/javascript");
        fileref.setAttribute("src", filename);
        document.writeln(fileref.outerHTML);
    };
    if (jQuery == undefined) loadjsfile(@Url.Content("~/Scripts/jquery-1.11.2.min.js"));

    loadjsfile(@Url.Content("~/Scripts/jquery.validate.min.js"));
    loadjsfile(@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js"));
    loadjsfile(@Url.Content("~/Scripts/contactusform.js");

</script>

目前,我确定没有加载“contactusform.js”,因为我在其中一个输入按钮中调用了一个 javascript 方法,它说找不到该方法。

【问题讨论】:

  • 这是 Javascript,与核心无关。您可能只需要担心Url.Content 位。检查您的网络浏览器控制台是否有任何错误。
  • loadjsfile 是做什么的?为什么不使用脚本标签来包含你的 js 文件?
  • @Shyju 看起来它会加载尚未定义的 jQuery。例如,对于 CDN 出现故障可能会很方便。
  • @DavidG 之前的代码是loadjsfile("@Request.Url.GetLeftPart(UriPartial.Authority)/Scripts/jquery-1.11.2.min.js");,我试图将它实现到 .NET Core,你认为我应该摆脱它吗?

标签: javascript c# asp.net .net asp.net-core


【解决方案1】:

如果loadjsfile 方法采用字符串值,则应将Url.Content 调用的结果用引号括起来。

loadjsfile("@Url.Content("~/Scripts/jquery.validate.min.js")");

您也可以考虑使用带有asp-fallback-src 属性的脚本标签助手。

<environment names="Staging,Production">
    <script src="//ajax.aspnetcdn.com/ajax/jquery/jquery-2.1.4.min.js"
                asp-fallback-src="~/lib/jquery/dist/jquery.min.js"
                asp-fallback-test="window.jQuery">
    </script> 
</environment>

asp-fallback-src 值更新为库的本地副本。

【讨论】:

  • 如果(这是猜测)代码在局部视图中并且应该在外部添加 jQuery,这将有什么帮助? 编辑:您的编辑更有可能是正确的答案,但额外的信息是一个有用的补充。
  • 我之前曾尝试将其用引号括起来,就像您在答案中使用的那样,但它并没有改变结果。我应该在我的问题中提到它。也许连接问题在其他地方......
  • 所以我建议你查看loadjsfile 方法的代码,看看它试图做什么。正如我在答案中提到的,您也可以考虑使用标签助手
  • 我认为现在用引号括起来实际上解决了这个问题,我只是不知道错误的变化,现在它不是连接错误而是其他问题。我也会尝试实现标签助手
猜你喜欢
  • 2016-12-16
  • 2022-01-17
  • 2021-12-07
  • 2021-11-12
  • 2020-02-22
  • 2020-05-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多