使用 ASP.NET Core MVC 创建 Web API(六)
原文:
使用 ASP.NET Core MVC 创建 Web API(六)
使用 ASP.NET Core MVC 创建 Web API 使用 ASP.NET Core MVC 创建 Web API(一) 使用 ASP.NET Core MVC 创建 Web API(二) ?使用 ASP.NET Core MVC 创建 Web API(三) 使用 ASP.NET Core MVC 创建 Web API(四) 使用 ASP.NET Core MVC 创建 Web API(五)十七、使用 jQuery 调用 API??? 在之前的文章中我们是使用Rester来测试我们的WebAPI的。接下来,我们来创建一个实际的页面来测试之前我们写的WebAPI。我们创建一个HTML页面,并在页面使用 jQuery 来调用 Web API 。通过jQuery来调用增删除改查WebAPI接口,并用 API 接口返回的响应中的详细信息更新到页面中。 ??? 1) 在Visual Studio 2017的“解决方案资源管理器”中打开Startup.cs文件,并找到Configure方法,在方法中添加 app.UseStaticFiles()方法,配置应用提供静态文件并启用默认文件映射,代码如下:????? public void Configure(IApplicationBuilder app,IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseDefaultFiles(); app.UseStaticFiles(); app.UseMvc(); } ??? 2) 在Visual Studio 2017的“解决方案资源管理器”中,选中解决方案,点击鼠标右键,在弹出菜单中选择“添加—》新建文件夹”,并把“新文件夹”命名为 wwwroot。如下图。 ? ????? 3) 在Visual Studio 2017的“解决方案资源管理器”中,选中“wwwroot”目录,点击鼠标右键,在弹出菜单中选择“添加—》新建项”,在弹出对话框中选择“HTML页”,并在名称输入框中输入“index.html”,然后点击“添加”按钮。如下图。 Index.html文件的内容如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>BOOK CRUD</title> <!-- 最新版本的 Bootstrap 核心 CSS 文件 --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email?protected]/dist/css/bootstrap.min.css" ? ??? 4) 在Visual Studio 2017的“解决方案资源管理器”中,选中“wwwroot”目录,点击鼠标右键,在弹出菜单中选择“添加—》新建项”,在弹出对话框中选择“JavaScript文件”,并在名称输入框中输入“site.js”,然后点击“添加”按钮。如下图。 ? ??? 5) 在site.js文件中添加如下 代码: const uri = "api/book"; let books = null; function getCount(data) { const el = $("#counter"); let name = "book"; if (data) { if (data > 1) { name = "book-s"; } el.text(data + " " + name); } else { el.text("No " + name); } } $(document).ready(function () { getData(); }); function getData() { $.ajax({ type: "GET",url: uri,cache: false,success: function (data) { const tBody = $("#books"); $(tBody).empty(); getCount(data.length); $.each(data,function (key,item) { const tr = $("<tr></tr>") .append($("<td></td>").text(item.id)) .append($("<td></td>").text(item.name)) .append($("<td></td>").text(item.releaseDate)) .append($("<td></td>").text(item.author)) .append($("<td></td>").text(item.price)) .append($("<td></td>").text(item.publishing)) .append( $("<td></td>").append( $("<button class="btn btn-default btn-sm" >Edit</button>").on("click",function () { editItem(item.id); }) ) ) .append( $("<td></td>").append( $("<button class="btn btn-default btn-sm">Delete</button>").on("click",function () { deleteItem(item.id); }) ) ); tr.appendTo(tBody); }); books = data; } }); } function addItem() { const item = { Name: $("#AddName").val(),ReleaseDate: $("#AddReleaseDate").val(),Author: $("#AddAuthor").val(),Publishing: $("#AddPublishing").val(),Price: $("#AddPrice").val(),ID: 0 }; $.ajax({ type: "POST",accepts: "application/json",contentType: "application/json",data: JSON.stringify(item),error: function (jqXHR,textStatus,errorThrown) { alert("Something went wrong!"); },success: function (result) { getData(); $("#add-name").val(""); } }); } function deleteItem(id) { $.ajax({ url: uri + "/" + id,type: "DELETE",success: function (result) { getData(); } }); } function editItem(id) { $.each(books,item) { if (item.id === id) { $("#Name").val(item.name); $("#BookID").val(item.id); $("#ReleaseDate").val(item.releaseDate); $("#Author").val(item.author); $("#Publishing").val(item.publishing); $("#Price").val(item.price); $("#RowVersion").val(item.rowVersion); } }); $("#spoiler").css({ display: "block" }); } $(".my-form").on("submit",function () { const item = { Name: $("#Name").val(),ReleaseDate: $("#ReleaseDate").val(),Author: $("#Author").val(),Publishing: $("#Publishing").val(),Price: $("#Price").val(),RowVersion: $("#RowVersion").val(),ID: $("#BookID").val() }; $.ajax({ url: uri + "/" + $("#BookID").val(),type: "PUT",success: function (result) { getData(); } }); closeInput(); return false; }); function closeInput() { $("#spoiler").css({ display: "none" }); } ? ???? 6) 修改 ASP.NET Core 项目的启动设置,以便对 HTML 页面进行本地测试。在Visual Studio 2017中打开 PropertieslaunchSettings.json。 ???? 7) 删除 ? ???? 此示例调用 API 的所有 CRUD 方法。 以下是 API 调用的说明。 ??? 一)获取书籍的列表???? 我们写的脚本中的getData 方法是通过jQuery ajax 函数将 ? ???? 二)添加书籍信息???? 脚本中的addItem 方法通过JQuery 的Ajax 函数发送 ???? 三)? 更新书籍信息 ???? editItem方法用来更新书籍信息,这个方法的实现与addItem类似。 ???? 四) 删除书籍????? deleteItem方法用来删除书籍信息,通过调用JQuery ?AJAX函数发出删除请求。并把 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 模拟CSRF攻击
- ASP.NET应用程序的国际化
- asp.net – 清除Repeater Vb.net中的所有行
- Asp.Net Core 生成二维码(NuGet使用QRCoder)
- ASP.NET MVC another entity of the same type already has
- ASP.NET Web窗体DropDownList具有SelectedValue,因为它不存
- .NET中的共享配置文件
- asp.net – 为什么IIS线程这么珍贵与常规CLR线程相比?
- asp.net-mvc – 如何为mvc应用程序中的所有控制器启用ssl
- asp.net – Orchard CMS如何进行日志记录?