WEBAPI傳參及默認首頁設置
開發工具:VS2017
創建WEBAPI,
1.選擇ASP.NET Core Web應用程序

2.選擇如下,HTTPS配置勾選去掉,暫不配置

3.“屬性”中調試默認界面及launchsettings.json


4.調試以后默認頁面

5.WEBAPI設置自定義首頁
在wwwroot目錄下添加需要的首頁index.html

將Startup.cs里面的 Configure代碼調整為如下:
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { //自定義首頁 DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions(); defaultFilesOptions.DefaultFileNames.Clear(); defaultFilesOptions.DefaultFileNames.Add("index.html"); app.UseDefaultFiles(defaultFilesOptions); app.UseStaticFiles(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseHttpsRedirection(); app.UseMvc(); }
index.html代碼如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>The AP For CallWebApi</title>
<script src="js/jquery-3.7.1.min.js"></script>
<script type="text/javascript">
//var arr = [
// { "username": "Tom", "password": "tom" },
// { "username": "Jerry", "password": "jerry" }
//];//api/sap
var arr = { "username": "Tom", "password": "tom" };//api/values
function CallApi() {
//alert("show");
$.ajax({
type: "post",
url: "/api/values/",//單筆實體
//url: "/api/sap/",//多筆實體
//url:"http://10.0.31.154/WebApi/api/values",
contentType: "application/json",
data: JSON.stringify(arr),
success: function (data, status) {
if (status = "success") {
$("#info").html(data);
}
else {
alert("Faile");
}
}
});
}
</script>
</head>
<body>
<button onclick="CallApi()">CallWebApi</button>
<div id="info"></div>
</body>
</html>
此時保存后重啟調試,顯示的首頁仍為***/api/values,需將項目->屬性->調試或launchsettings.json調整為如下:


保存后重啟調試即可顯示自定義首頁。
6.WEBAPI傳參
POST:單筆實體
// POST api/values [HttpPost] public string Post(SapCls obj)//如未定義相應的類,可使用(dynamic obj)傳遞單筆資料 { string rst = ""; rst = obj.username + ":" + obj.password; return rst; }
多筆實體:
// POST api/sap/ [HttpPost] public string Post([FromBody] List<dynamic> objs)//[FromBody] List<SapCls> objs { string rst = ""; foreach (dynamic obj in objs) { rst = rst + obj.username + ":" + obj.password + ";\n"; //rst = rst + obj.UserName + ":" + obj.PassWord + ";\n"; } if (rst == "") { rst = "Null"; } if (objs.Count == 0) { rst = "Count is 0"; } return rst; }
前端傳參數時contentType需設置為 "application/json",實體需要序列化:data: JSON.stringify(arr)。
以上部分僅為本機測試調試使用,前端跨域調用暫為涉及。
浙公網安備 33010602011771號