//1.1 檔案傳遞用HttpPostedFileBase class
public void function01 (HttpPostedFileBase file){ ... }
//2.1 相容IE取檔案名稱
var fileName = Path.GetFileName(file.FileName)
//3.1 EF6比對時間用DbFunctions
var isExistenceFile = Db.MainOCImportLogs.Any(x =>
DbFunctions.TruncateTime(x.ImportDate) == DbFunctions.TruncateTime(DateTime.Now));
//4.1 WebApi: App_Start/WebApiConfig.cs
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "hagondas/{controller}/{period}",
defaults: new { period = RouteParameter.Optional }
);
//** 其中period要與Controller要吃的參數相同才會吃到 **
//4.1.1 WebApi:Controller(ex:DrawingController)
public int GetDrawing(int period)
{
return period;
}
//** 其中period要與Controller要吃的參數相同才會吃到 **
4.1.2 WebApi: Controller && App_Start/WebApiConfig.cs
public string Get01(string name)
{
return name;
}
public int Get02(int id)
{
return id;
}
public string Get03(string name, string id)
{
return name + id;
}
//路由1
config.Routes.MapHttpRoute(
name: "Get01",
routeTemplate: "api/{controller}/test01/{name}",
defaults: new { name = RouteParameter.Optional }
);
//路由2
config.Routes.MapHttpRoute(
name: "Get02",
routeTemplate: "api/{controller}/test02/{id}",
defaults: new { id = RouteParameter.Optional }
);
//路由3
config.Routes.MapHttpRoute(
name: "Get03",
routeTemplate: "api/{controller}/{name}/{id}",
defaults: new { test03 = RouteParameter.Optional, id = RouteParameter.Optional }
);
//**name:路由的名稱**
//**routeTemplate:路由URI範本**
//**default:定義參數**
//***********************************************************
在路由1中,先給他一個名稱叫做"Get01",在Controller裡面也有一個一樣名稱的方法,這樣的設計只是讓我們比較容易分辨這個Routing到底是做什麼用的、與那些Controller方法有關係,名稱並不絕對一定要與Controller方法相同。
路由URI範本描述了這個Web API對外的URI長什麼樣子,例如"api/{controller}/test01/{name}",翻譯一下就成為:"api/控制器名稱/test01/參數name",如果套用到瀏覽器的網址上就成為:"http://domain:port/api/控制器名稱/test01/參數name",這樣看起來就很簡單了吧!
最後就是定義參數,"RouteParameter.Optional"代表這個參數是可選用的,我們在呼叫Web API時不一定要送出這個參數,這也造就了路由3可以一個路由多個用途的原因!
我們來看看路由3,他的路由範本是"api/{controller}/{name}/{id}",且兩個參數都是可選用的,也就是不一定要傳入,所以可能的URI如下:
api/{controller}/{name}/{id}
api/{controller}/{name}
api/{controller}
//***********************************************************
//4.1.2.1 WebApi 可以改成 (ex:DrawingController)
[Route("api/drawing")]
[HttpGet]
public string Get(string name)
{
return name;
}
[Route("api/drawing/test01/{name}")]
[HttpGet]
public string Get01(string name)
{
return name;
}
[Route("api/drawing/test02/{id}")]
[HttpGet]
public int Get02(int id)
{
return id;
}
[Route("api/drawing/{name}/{id}")]
[HttpGet]
public string Get03(string name, string id)
{
return name + id;
}