我有一個控制器正在向 API 發送專案串列,然后我會回傳專案回應,這意味著我將收到例如如果專案未找到或無效,它作業正常! !但我想知道如何將 dtoresponse 串列從我的控制器發送到視圖以及我需要在視圖中添加什么?
DTO
public class ReceivedItemsRequest
{
public List<string> Items { get; set; }
}
public class ReceivedItemsResponse
{
public bool HasErrors { get; set; }
public List<ReceivedItemResponse> ItemResponses { get; set; } = new List<ReceivedItemResponse>() ;
}
public class ReceivedItemResponse
{
public string Barcode { get; set; }
public string ErrorMsg { get; set; }
}
}
控制器
[HttpPost]
public async Task<ActionResult> Received(List<string> itemsList)
{
try
{
var dtoRequest = new ReceivedItemsRequest();
var dtoResponse = new ReceivedItemsResponse();
dtoRequest.itemsList= itemsList;
dtoResponse = await API.Post<ReceivedItemsResponse, ReceivedItemsRequest>($"items/", dtoRequest);
return View(dtoResponse); ---> this part I'm not sure
how to send the list and what I need to add in the view or if I need to create a view model?
}
uj5u.com熱心網友回復:
從您的代碼中,我發現您回傳的是單個記錄,而不是控制器中的串列。因此,如果您的 API 回傳值是一條記錄,您將發送到視圖,如下所示:
你的控制器:
[HttpPost]
public async Task<ActionResult> Received(List<string> itemsList)
{
...
dtoResponse = await API.Post<ReceivedItemsResponse, ReceivedItemsRequest>($"items/", dtoRequest);
return View(dtoResponse);
}
您的看法:
@model Application.ReceivedItemsResponse
@{
ViewBag.Title = "Received Items Response";
}
...HTML Code on View here...
如果您希望將串列作為您的 dtoresponse,那么在您的視圖中,您將擁有:
@model IEnumerable<Application.Models.ReceivedItemsResponse>
@{
ViewBag.Title = "Index Item Response";
}
...HTML Code Block here ....
請注意,只要您傳遞單個記錄或串列,您的控制器就不會改變,但您的視圖會改變。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/432860.html
標籤:javascript html 网 asp.net-mvc api
