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

Posted

技术标签:

【中文标题】如何将 Microsoft.jQuery.Unobtrusive.Ajax 与 libman(库管理器)asp.net Core 2.1 一起使用?【英文标题】:How do I use Microsoft.jQuery.Unobtrusive.Ajax with libman (Library manager) asp.net Core 2.1? 【发布时间】:2018-08-30 07:28:01 【问题描述】:

我正在尝试使用不显眼的 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-package,但是如何使用 libman 引用 ajax-package?

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

【问题讨论】:

【参考方案1】:

一开始我也与 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/"

【讨论】:

我试图通过gui添加...没有用。将该块粘贴到 libman.json - 做到了。那不是...【参考方案2】:

@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

【讨论】:

嗨@itminus,我认为你错过了问题的重点。 OP 想知道如何将 jquery.ajax.unobtrusive 包含在他的项目中,因为目前 cdnjs 不提供此功能。我也想要这个,看起来很多其他人也想要。 @lan GM 嗨,我已经更新了我的答案,展示了一种使用 libman cli 安装jquery-ajax-unobtrusive 的方法。 这看起来完全符合我的需要。我要等到下周才离开这个项目,但我期待着试一试。非常感谢。【参考方案3】:

你可以使用 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 以查看所有文件夹。

之后,如果您希望始终拥有最新版本的库,而不是将文件复制到您的 js 文件夹,您可以使用 bundle config。运行这个:

Install-Package BuildBundlerMinifier -Version 2.8.391

之后创建 json 文件 - bundleconfig.json 在您的 Web 项目的根目录中

[ 
  
    "outputFileName": "wwwroot/js/myjs.min.js",
    "inputFiles": [
      "node_modules/jquery-ajax-unobtrusive/jquery.unobtrusive-ajax.min.js"
    ]
  

]

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

【讨论】:

【参考方案4】:

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

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

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

【讨论】:

以上是关于如何将 Microsoft.jQuery.Unobtrusive.Ajax 与 libman(库管理器)asp.net Core 2.1 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

如何将Ios文件上传到

Qt如何将文字变成图片?

如何将Bitmap保存为本地图片文件?

在MATLAB中如何将图导出

ASP如何将SQLSERVER数据导出到DBF(VF)

如何将CSV格式转换成JSON格式