我正在開發一個.NET應用程式,用戶可以去填寫一個請求(表單)。一旦用戶點擊了 "提交"。我們的目標是向一個函式應用程式(PowerShell驅動)發送一個POST請求。如果POST請求成功,它將回傳一個請求的ID。
我希望使用這個ID來查詢發送到函式應用程式的請求(GET)的狀態。一旦用戶點擊提交,它應該自動將他們重定向到詳細資訊頁面,在那里他們可以查看他們的請求狀態。
這是我想把請求轉到的控制器:
我想把請求轉到的控制器
namespace AzDeployManager.Web.Controller
{
[Route("api/[controller]")]
[ApiController]
public class DeploymentController : ControllerBase
{
public string ReceiveRequest { get; set; }
public string CheckRequest { get; set; }
public DeploymentController(IOptions< AppSettings> settings)
{
this.ReceiveRequest = settings.Value.AzReceiveRequest;
this.CheckRequest = settings.Value.AzCheckRequest;
}
//POST: api/ReceiveRequest。
[HttpPost]
[Route("sendrequest")]
public async Task< IActionResult> OnPostAsync([FromBody] Deployment deployment)
{
using var http = new HttpClient();
var data = new Deployment
{
};
//var content = new StringContent(JsonConvert.SerializeObject(deployment));
var content = new StringContent(JsonConvert.SerializeObject(data))。
content.Headers.ContentType = new MediaTypeHeaderValue("application/json"/span>)。
var request = http.PostAsync(ReceiveRequest, content);
var response = await request.Result.Content.ReadAsStringAsync()。
return Ok(response);
}
}
在控制器中顯示的我的http帖子中,我能夠通過除錯來查看資料。我現在遇到了自定義有效載荷的問題,因為我想要它:
{
"data"/span>: {
"name1": "val1",
"name2": "val2"。
},
"name3": "val3": "val3".
}
任何指導在這里都會有幫助。
uj5u.com熱心網友回復:
你可以使用jQuery將表單的鍵值對序列化為一個陣列,然后將其決議為一個json物件。
<script>
function getdata() {
var paramArray = $('#submitreq').serializeArray()。
var body = {};
$(paramArray).each(function () {
//here
if (this.name.indexOf('. ' ) > 0) {
body[this.name.split('. ')[1]] = this.value。
} else {
body[this.name] = this.value。
}
});
body['RequestNumber'] = parseInt(body['RequestNumber'] )
$.ajax({
型別。"POST"。
網址。"/api/sendrequest"。
dataType。"json",
資料。JSON.stringify(body)。
contentType。"application/json; charset=utf-8"。
success: function (response) {
console.log("成功:" response.RequestNumber)。
},
error: function (req, status, error) {
console.log("發生了錯誤。" status " req.responseText)。)
}
});
}
</script>
由于欄位集被設定為禁用,它將不會被自動序列化,你可以在欄位集之外添加一個隱藏的輸入框。
<form id="submitreq"/span> method="post"/span>>
<div asp-validation-summary="ModelOnly" class="text-danger"> </div>
<input type="hidden" asp-for="Deployment.RequestNumber" class="form-controll" />。
<!--...-->
<input type="button" name="name" value="submit" onclick="getdata()" />
</form>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/320336.html
標籤:
上一篇:邊緣檢測最小線長?

