日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET Web API 基本操作(CRUD)

發布時間:2025/7/25 asp.net 107 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET Web API 基本操作(CRUD) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上一篇介紹了ASP.NET Web API的基本知識和原理,這一篇我們通過一個更直觀的實例,對產品進行CRUD操作(Create/Read/Update/Delete)來繼續了解一下它的基本應用。

?

創建ASP.NET Web API應用程序?

在VS中選擇創建一個ASP.NET Web Application應用程序,在向導的下一個窗口中選擇Web API模板。

?

創建Model

這里我們在Models文件夾下創建一個簡單的Product model類,用來傳遞數據。

Models文件夾上點擊右鍵,選擇Add -> Class

public class Product{public int ProductID { get; set; }public string ProductName { get; set; }public decimal Price { get; set; }public int Count { get; set; }public string Description { get; set; }}


創建Controller

接著在Controllers文件夾下創建一個API Controller, 命名為"ProductsController"。

Controllers文件夾上點擊右鍵,選擇Add -> Controller ,在彈出向導中選擇Web API 2 Controller - Empty

在向導下一步中輸入API Controller name為"ProductsController"。

?

創建Web API方法(CRUD)并通過JQuery和Ajax進行數據操作

1.獲取Product列表

首先打開ProductsController文件,添加模擬數據以及獲取Product列表的方法。

?

public class ProductsController : ApiController{// Mock product liststatic List<Product> productMockList = initProductMockDataList();private static List<Product> initProductMockDataList(){return new List<Product>(){new Product {ProductID=1,ProductName="Product A",Price=1000000,Count=5,Description="Description A"},new Product {ProductID=2,ProductName="Product B",Price=200000,Count=2,Description="Description B"},new Product {ProductID=3,ProductName="Product C",Price=500000,Count=8,Description="Description C"},new Product {ProductID=4,ProductName="Product D",Price=80000,Count=10,Description="Description D"},new Product {ProductID=5,ProductName="Product E",Price=300000,Count=3,Description="Description E"}};}// GET api/productspublic IEnumerable<Product> GetAllProducts(){return productMockList;}}

接著在文件夾Views->Product下創建一個View,名為"Index"。這里我們需要實現的是點擊Get Product List按鈕獲取Product List數據,修改代碼如下:

@{Layout = null; }<!DOCTYPE html><html> <head><meta name="viewport" content="width=device-width" /><title>Index</title><script src="~/Scripts/jquery-1.10.2.min.js" type="text/javascript"></script> </head> <body><p><h2>ASP.NET Web API (CRUD)</h2></p><div><input id="btnGetProductList" name="btnGetProductList" type="button" value="Get Product List" /><div id="productsBlock" style="padding-top:10px;display:none;"><div style="padding-left:5px;">Product List</div><div id="products"></div></div></div><script>// Click get product list$('#btnGetProductList').click(function () {LoadProductList();});// Load product list function LoadProductList() {$.ajax({url: '/api/products',contentType: 'application/html; charset=utf-8',type: 'GET',dataType: 'json'}).success(function (result) {$('#productsBlock').show();DisplayProductList(result);}).error(function (data) {alert(data);});}// Display product list function DisplayProductList(result) {var productTable = $("<table cellpadding='5' cellspacing='5'></table>");var productTableTitle = $("<tr style='background-color:#7FBA00;'><th>Product ID</th><th>Product Name</th><th>Price</th><th>Count</th><th>Description</th></tr>");productTableTitle.appendTo(productTable);for (var i = 0; i < result.length; i++) {var productTableContent = $("<tr style='background-color: #7FBA00; color: white;'><td>"+ result[i].ProductID + "</td><td>"+ result[i].ProductName + "</td><td>"+ result[i].Price + "</td><td>"+ result[i].Count + "</td><td>"+ result[i].Description + "</td></tr>");productTableContent.appendTo(productTable);}$('#products').html(productTable);}</script> </body> </html>

運行代碼,點擊Get Product List按鈕之前。

點擊Get Product List按鈕之后

2.獲取一條Product數據

這里我們的做法是點擊列表右側View鏈接,獲取當前Product數據,并顯示到列表下方各個字段對應的文本框中。

首先我們先完成Web API中獲取一條Product數據的方法。

// GET api/products/?public Product GetProdcut(int id){return productMockList.Where(p => p.ProductID == id).FirstOrDefault();}

接著,在Product列表中添加一列View,在列表下面添加對應各個字段的textbox。實現點擊View鏈接,獲取當前Product數據,然后顯示到對應的文本框中。

@{Layout = null; }<!DOCTYPE html><html> <head><meta name="viewport" content="width=device-width" /><title>Index</title><script src="~/Scripts/jquery-1.10.2.min.js" type="text/javascript"></script> </head> <body><p><h2>ASP.NET Web API (CRUD)</h2></p><div><input id="btnGetProductList" name="btnGetProductList" type="button" value="Get Product List" /><div id="productsBlock" style="padding-top:10px;display:none;"><div style="padding-left:5px;">Product List</div><div id="products"></div><div id="editProductBlock" style="padding:10px;width:20%;border:1px solid green;display:none;"><div style="font-weight:bold;">Edit Product</div><table><tr><td>Product ID:</td><td><input id="txtProductID" name="txtProductID" type="text" disabled /></td></tr><tr><td> Product Name:</td><td><input id="txtProductName" name="txtProductName" type="text" /></td></tr><tr><td>Count:</td><td><input id="txtCount" name="txtCount" type="text" /></td></tr><tr><td> Price:</td><td><input id="txtPrice" name="txtPrice" type="text" /></td></tr><tr><td> Description:</td><td><input id="txtDescription" name="txtDescription" type="text" /></td></tr></table><div style="padding-top:5px;"><div id="message" style="color:green;"></div><input id="btnSave" name="btnSave" type="button" value="Save" /></div></div></div></div><script>// Click get product list$('#btnGetProductList').click(function () {LoadProductList();});// Load product list function LoadProductList() {$.ajax({url: '/api/products',contentType: 'application/html; charset=utf-8',type: 'GET',dataType: 'json'}).success(function (result) {$('#productsBlock').show();DisplayProductList(result);}).error(function (data) {alert(data);});}// Display product list function DisplayProductList(result) {var productTable = $("<table cellpadding='5' cellspacing='5'></table>");var productTableTitle = $("<tr style='background-color:#7FBA00;'><th>Product ID</th><th>Product Name</th><th>Price</th><th>Count</th><th>Description</th><th></th></tr>");productTableTitle.appendTo(productTable);for (var i = 0; i < result.length; i++) {var productTableContent = $("<tr style='background-color: #7FBA00; color: white;'><td>"+ result[i].ProductID + "</td><td>"+ result[i].ProductName + "</td><td>"+ result[i].Price + "</td><td>"+ result[i].Count + "</td><td>"+ result[i].Description + "</td>"+ "<td><a href='#' οnclick='ViewProduct(" + result[i].ProductID + ")'>View</a></td></tr>");productTableContent.appendTo(productTable);}$('#products').html(productTable);}// View product function ViewProduct(productId) {$('#editProductBlock').show();$.ajax({url: '/api/products/' + productId,contentType: 'application/html;charset=utf-8',type:'GET'}).success(function (result) {if (result != null) {$("#txtProductID").val(result.ProductID);$("#txtProductName").val(result.ProductName);$("#txtCount").val(result.Count);$("#txtPrice").val(result.Price);$("#txtDescription").val(result.Description);}}).error(function (data) {alert(data);})}</script> </body> </html>

運行程序
點擊Get Product List按鈕獲取列表數據,顯示如下。

接著點擊列表中任意記錄右邊的View鏈接,這里我們點擊第一條數據View鏈接,顯示如下。

3.新增一條Product

這里我們需要一個Create Product的按鈕,然后利用上面創建的TextBox來實現新增數據功能。

首先我們先完成Web API中新增Product數據的方法。

// POST api/productspublic void CreateProduct([FromBody]Product product){var lastProduct = productMockList.OrderByDescending(p => p.ProductID).FirstOrDefault();int newProductID = lastProduct.ProductID + 1;product.ProductID = newProductID;productMockList.Add(product);}

接著我們修改Index View頁面實現新增Product

@{Layout = null; }<!DOCTYPE html><html> <head><meta name="viewport" content="width=device-width" /><title>Index</title><script src="~/Scripts/jquery-1.10.2.min.js" type="text/javascript"></script> </head> <body><p><h2>ASP.NET Web API (CRUD)</h2></p><div><input id="btnGetProductList" name="btnGetProductList" type="button" value="Get Product List" /><div id="productsBlock" style="padding-top:10px;display:none;"><div style="padding-left:5px;">Product List</div><div id="products"></div><div><input id="btnCreateProduct" name="btnCreateProduct" type="button" value="Create Product" /></div><div id="editProductBlock" style="padding:10px;width:20%;border:1px solid green;display:none;"><div id="typeBlock" style="font-weight:bold;">Edit Product</div><table><tr><td>Product ID:</td><td><input id="txtProductID" name="txtProductID" type="text" disabled /></td></tr><tr><td> Product Name:</td><td><input id="txtProductName" name="txtProductName" type="text" /></td></tr><tr><td>Count:</td><td><input id="txtCount" name="txtCount" type="text" /></td></tr><tr><td> Price:</td><td><input id="txtPrice" name="txtPrice" type="text" /></td></tr><tr><td> Description:</td><td><input id="txtDescription" name="txtDescription" type="text" /></td></tr></table><div style="padding-top:5px;"><div id="message" style="color:green;"></div><input id="btnSave" name="btnSave" type="button" value="Save" /><input id="btnCreate" name="btnCreate" type="button" value="Create"/></div></div></div></div><script>// Click get product list$('#btnGetProductList').click(function () {LoadProductList();});// Load product list function LoadProductList() {$.ajax({url: '/api/products',contentType: 'application/html; charset=utf-8',type: 'GET',dataType: 'json'}).success(function (result) {$('#productsBlock').show();DisplayProductList(result);}).error(function (data) {alert(data);});}// Display product list function DisplayProductList(result) {var productTable = $("<table cellpadding='5' cellspacing='5'></table>");var productTableTitle = $("<tr style='background-color:#7FBA00;'><th>Product ID</th><th>Product Name</th><th>Price</th><th>Count</th><th>Description</th><th></th></tr>");productTableTitle.appendTo(productTable);for (var i = 0; i < result.length; i++) {var productTableContent = $("<tr style='background-color: #7FBA00; color: white;'><td>"+ result[i].ProductID + "</td><td>"+ result[i].ProductName + "</td><td>"+ result[i].Price + "</td><td>"+ result[i].Count + "</td><td>"+ result[i].Description + "</td>"+ "<td><a href='#' οnclick='ViewProduct(" + result[i].ProductID + ")'>View</a></td></tr>");productTableContent.appendTo(productTable);}$('#products').html(productTable);}// View product function ViewProduct(productId) {$('#editProductBlock').show();$('#btnCreate').hide();$.ajax({url: '/api/products/' + productId,contentType: 'application/html;charset=utf-8',type: 'GET'}).success(function (result) {if (result != null) {$("#txtProductID").val(result.ProductID);$("#txtProductName").val(result.ProductName);$("#txtCount").val(result.Count);$("#txtPrice").val(result.Price);$("#txtDescription").val(result.Description);}}).error(function (data) {alert(data);});}$('#btnCreateProduct').click(function () {$('#editProductBlock').show();$('#btnCreate').show();$('#btnSave').hide();$('#typeBlock').html("Create Product");});// Create product$('#btnCreate').click(function () {var product = {ProductID: 0,ProductName: $('#txtProductName').val(),Price: $('#txtPrice').val(),Count: $('#txtCount').val(),Description: $('#txtDescription').val()};$.ajax({url: '/api/products/',type: 'POST',data: JSON.stringify(product),contentType: 'application/json'}).success(function (result) {LoadProductList();$('#message').html("Product create success.");}).error(function (data) {alert(data);});});</script> </body> </html>

運行程序
點擊獲取列表

點擊Create Product按鈕,輸入新增的Product數據。

點擊Create按鈕,結果如下圖。

4.修改Product信息

我們這里要實現的是點擊列表數據中的View鏈接,在文本框中修改選擇的Product信息,然后點擊Save按鈕,數據修改成功。

首先我們先完成Web API中修改Product數據的方法。

// PUT api/productspublic void UpdateProduct(int id,[FromBody]Product product){var currentProduct = productMockList.Where(p => p.ProductID == id).FirstOrDefault();if (currentProduct != null){foreach(var item in productMockList){if(item.ProductID.Equals(currentProduct.ProductID)){item.ProductName = product.ProductName;item.Price = product.Price;item.Count = product.Count;item.Description = product.Description;}}}}

接著我們在Index View中添加修改Product代碼如下。

// Update product$('#btnSave').click(function () {var product = {ProductID: $('#txtProductID').val(),ProductName: $('#txtProductName').val(),Price: $('#txtPrice').val(),Count: $('#txtCount').val(),Description: $('#txtDescription').val()};$.ajax({url: '/api/products/' + $('#txtProductID').val(),type: 'POST',data: JSON.stringify(product),contentType: 'application/json'}).success(function (result) {LoadProductList();$('#message').html("Product save success.");}).error(function (data) {alert(data);});});

運行程序


加載Product列表,任意點擊一條數據的View鏈接,這里我們點擊第一條數據。

接著我們修改信息Product Name為"Product AAA",Count10Price200000Description為"Description AAA",并點擊Save按鈕。

5.刪除Product

這里我們像View Product一樣,在列表數據行中添加一個Delete鏈接。點擊Delete鏈接,刪除對應的Product數據。

首先我們先完成Web API中刪除Product數據的方法。

// DELETE api/productspublic void DeleteProduct(int id){var product = productMockList.Where(p => p.ProductID == id).FirstOrDefault();if (product != null){productMockList.Remove(product);}}

接著修改Index View頁面,增加刪除功能。

// Display product list function DisplayProductList(result) {var productTable = $("<table cellpadding='5' cellspacing='5'></table>");var productTableTitle = $("<tr style='background-color:#7FBA00;'><th>Product ID</th><th>Product Name</th><th>Price</th><th>Count</th><th>Description</th><th></th></tr>");productTableTitle.appendTo(productTable);for (var i = 0; i < result.length; i++) {var productTableContent = $("<tr style='background-color: #7FBA00; color: white;'><td>"+ result[i].ProductID + "</td><td>"+ result[i].ProductName + "</td><td>"+ result[i].Price + "</td><td>"+ result[i].Count + "</td><td>"+ result[i].Description + "</td>"+ "<td><a href='#' οnclick='ViewProduct(" + result[i].ProductID + ")'>View</a>&nbsp;<a href='#' οnclick='DeleteProduct(" + result[i].ProductID + ")'>Delete</a></td></tr>");productTableContent.appendTo(productTable);}$('#products').html(productTable);} // Delete product function DeleteProduct(productID) {$.ajax({url: '/api/products/' + productID,type: 'DELETE',}).success(function (result) {LoadProductList();$('#message').html("Product delete success.");}).error(function (data) {alert(data);})}

運行程序
加載列表

點擊Product A數據的Delete鏈接。

可以看到Product A的數據成功刪除。

?

?

好了,本篇就先到此,希望對你有所幫助,謝謝!

?

轉載于:https://www.cnblogs.com/mejoy/p/6408735.html

總結

以上是生活随笔為你收集整理的ASP.NET Web API 基本操作(CRUD)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。