我希望能够将一个长字符串(ID列表)从我们的Angular
前端传递到我们的.NET Web API
。但是,有时此字符串超出了URL字符数限制,因此我不想通过URL传递它。
执行此操作的好方法是什么?
前端:我首先想到要通过PUT's
中的HTTP Body
httpoptions
发送字符串,但是后来我意识到有一个PUT
请求,甚至可能不需要HTTP Body
-我想我可以将数据直接传递到PUT's
data
参数中。
PUT请求
public put(apiPath,data): Observable<any>
{
var url = this.globals.getBaseUrl() + apiPath + "/" + data["ID"];
const httpoptions =
{
headers: new HttpHeaders({"Content-Type": "application/json"}),withCredentials: true
};
return this.httpClient.put<any>(url,data,httpoptions)
.pipe(catchError(this.handleError));
}
。
.NET Web API :然后,在该API中,我如何挖掘通过data
请求发送的PUT
?我的游戏计划是为此控制器创建一个只有一个字段的模型-ID的字符串。然后在控制器中,我将其抓取,解析,定界并将其传递给我们的数据库。只是不确定如何在控制器中抓取此data
。
控制器:
// PUT: api/myApiPath/5
[ResponseType(typeof(void))]
public async Task<IHttpactionResult> Put_myTable(int id,_myTable _myTable)
{
db.Entry(_myTable).State = EntityState.Modified;
try
{
// ----- put -----
await db.SaveChangesAsync();
// ----- /put -----
}
else
{
error = "Unauthorized.";
throw new HttpResponseException(HttpStatusCode.Forbidden);
}
}