如何将Microsoft.jQuery.Unobtrusive.Ajax与libman(库管理器)asp.net Core 2.1结合使用?

时间:2018-08-30 07:28:02

标签: c# jquery ajax asp.net-core asp.net-core-mvc

我正在尝试使用简洁的Ajax更新我的局部视图。不幸的是,由于Bower无法正常工作(?)或根据https://docs.microsoft.com/en-us/aspnet/core/client-side/bower?view=aspnetcore-2.1的建议,我在安装软件包时遇到了问题。相反,他们建议我们使用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软件包呢?

我看了这个How to reference Microsoft.JQuery.Unobtrusive.Ajax within my ASP.NET Core MVC project答案,但它仅显示了如何使用Bower。

4 个答案:

答案 0 :(得分:6)

您可以使用npm。在您的Web项目的根目录中添加pakage.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"
    ]
  }

]

这将在myjs.min.js的js文件夹中的每个构建wwwroot文件上创建

答案 1 :(得分:6)

@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 provider:

  

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

libman install -p unpkg jquery-ajax-unobtrusive

答案 2 :(得分:6)

我一开始也和LibMan挣扎。我找到了this guide that points out there's a GUI portion of LibMan。使用“项目右键单击菜单->添加->客户端库”下的LibMan的UI部分,可以帮助我找到更好的方法来定义所需的文件并更轻松地更改提供程序。

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

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

答案 3 :(得分:0)

Microsoft编写了有关管理客户端库的帮助文档。

https://docs.microsoft.com/en-us/aspnet/core/client-side/libman/libman-vs?view=aspnetcore-2.2

它具有在Visual Studio中使用“添加客户端库对话框”的步骤。在解决方案资源管理器中,右键单击应在其中添加文件的项目文件夹。选择“添加>客户端库”。出现“添加客户端库”对话框。