如何在ASP.NET Core 2.1中使用Microsoft.jQuery.Unobtrusive.Ajax和LibMan(库管理器)?

20

我试图使用不显眼的ajax更新我的部分视图。不幸的是,当我准备安装包时遇到了问题,因为根据 https://learn.microsoft.com/en-us/aspnet/core/client-side/bower?view=aspnetcore-2.1 ,Bower不再推荐使用或无法正常工作。相反,他们建议我们使用Libman。

我按照https://www.c-sharpcorner.com/article/unobtrusive-ajax-and-jquery-for-partial-updates-in-asp-net-mvc/中的步骤操作。

因此,我已经安装了nuget Microsoft.jQuery.Unobtrusive.Ajax包,但是如何使用libman引用ajax包呢?

我查看了此如何在我的ASP.NET Core MVC项目中引用Microsoft.JQuery.Unobtrusive.Ajax答案,但它只显示了如何使用Bower。

4个回答

12

一开始我也对LibMan感到困惑。我找到了这篇指出LibMan有GUI部分的指南。在“项目右键菜单->添加->客户端侧库”下使用LibMan UI部分,帮助我更好地确定我想要的文件,并更轻松地更改提供程序。

最终我大部分的文件都来自cdnjs,但我设置jquery-ajax-unobtrusive来自unpkg,如下所示:

{
    "provider": "unpkg",
    "library": "jquery-ajax-unobtrusive@3.2.6",
    "destination": "wwwroot/lib/jquery-ajax-unobtrusive/"
}

我尝试通过 GUI 添加...但是没有成功。将该块粘贴到 libman.json 中,就成功了。这不是太棒了吗? - WernerCD

10

@mybirthname的回答非常好。另一种方法是使用libman cli。我们可以使用以下命令安装libman:

dotnet tool install --global Microsoft.Web.LibraryManager.Cli

现在,您可以根据自己的喜好安装jquery、jquery-validation-unobtrusive等:

初始化libman.json

libman init 
安装 jquery-validation-unobtrusive 的依赖项:
> libman install jquery-validation-unobtrusive
Destination [lib\jquery-validation-unobtrusive]:
lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js written to disk
lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js written to disk
Installed library "jquery-validation-unobtrusive@3.2.10" to "lib\jquery-validation-unobtrusive" 

安装 jquery 的依赖项:

> libman install jquery
Destination [lib\jquery]:
lib/jquery/core.js written to disk
lib/jquery/jquery.js written to disk
lib/jquery/jquery.min.js written to disk
lib/jquery/jquery.min.map written to disk
lib/jquery/jquery.slim.js written to disk
lib/jquery/jquery.slim.min.js written to disk
lib/jquery/jquery.slim.min.map written to disk
Installed library "jquery@3.3.1" to "lib\jquery"

[编辑]

为了在npm上安装jquery-ajax-unobtrusive,由于它还没有在cdnjs上,我们可以使用unpkg提供程序:

unpkg是npm上所有内容的快速全球内容交付网络。

libman install -p unpkg jquery-ajax-unobtrusive

嗨@itminus,我认为你没有理解问题的要点。OP想知道如何在项目中包含jquery.ajax.unobtrusive,因为目前在cdnjs上不可用。我也想要这个,看起来很多其他人也是这样。 - Ian GM
@lan GM 你好,我已更新我的答案,展示了使用 libman cli 安装 jquery-ajax-unobtrusive 的方法。 - itminus
那看起来正是我所需要的。我下周离开项目,但期待着尝试一下。非常感谢。 - Ian GM

8
您可以使用npm。在web项目的根目录中添加package.json文件。
{
  "version": "1.0.0",
  "name": "your-system",
  "devDependencies": {
    "jquery-ajax-unobtrusive": "^3.2.4"
  },
  "exclude": [
  ]
}

现在所有与库相关的内容都会自动下载到node_modules/jquery-validation-unobtrusive中。
请注意,node_module文件夹不是项目的一部分,因此您需要单击Show All Files以查看所有文件夹。

enter image description here

如果您希望始终拥有最新版本的库,而不是将文件复制到您的js文件夹中,您可以使用bundle config。执行以下操作:

Install-Package BuildBundlerMinifier -Version 2.8.391

在此之后,在您的Web项目根目录下创建JSON文件 - bundleconfig.json
[ 
  {
    "outputFileName": "wwwroot/js/myjs.min.js",
    "inputFiles": [
      "node_modules/jquery-ajax-unobtrusive/jquery.unobtrusive-ajax.min.js"
    ]
  }

]

这将在每次构建中在您的js文件夹中创建myjs.min.js文件,位于wwwroot中。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接