我有一个 asp.net webforms 应用程序作为我的 UI 层。此应用程序负责将对象列表向下发送到我的 DAL 类库,然后 DAL 类库会将此对象列表发送到 WebAPI 进行处理。
WebAPI 需要检索对象列表,进行处理并发回 OK 状态码。
这可能吗?是否有关于如何完成此操作的任何好的文档?
这是我的网络表单应用程序中的内容:
public static async Task<bool> MyFunction(IList<string> Ids)
{
using (var client = new HttpClient())
{
bool success = false;
client.BaseAddress = new Uri("http://localhost:9000/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// HTTP GET
HttpResponseMessage response = await client.GetAsync("api/products/MyProcessFunctionName");
if (response.IsSuccessStatusCode)
{
success = true;
}
return success;
}
}
我需要弄清楚如何将字符串 ID 列表作为参数发送到 WebApi 处理函数。
请您参考如下方法:
我假设您已经知道如何在您的项目中设置 Web API Controller 。
这是一个代码示例,用于将数据从 UI 发送回 Web API Controller 方法,然后将数据保存在数据库中,
第 1 步:
在你的前端,我希望你有一个自定义的 javascript 文件来处理任何按钮点击事件。然后,尝试使用 POST 方法将数据从 UI 发送到 Web API,如下所示,
var StaffSaveRequest = {};
StaffSaveRequest.StaffDetails = {};
StaffSaveRequest.StaffDetails.Name = "Test Name";
$.ajax({
url: 'api/Staff/SaveStaff', //this is the path to web api controller method
type: 'POST',
dataType: 'json',
data: StaffSaveRequest,
success: function (response, textStatus, xhr) {
//handle success
},
error: function (xhr, textStatus, errorThrown) {
if (textStatus != 'abort') {
//handle error
}
}
});
第 2 步:
如下所示添加 Controller 类并查看内联注释。然后,该 Controller 类将与数据访问层中的方法交互以保存任何信息。
public class StaffController : ApiController //inherits ApiController
{
[HttpPost] //add post attribute
public HttpResponseMessage SaveStaff(StaffSaveRequest staffSaveRequest)
{
try
{
var result = StaffManager.Save(staffSaveRequest);//save in database using a method in data access layer
return Request.CreateResponse(HttpStatusCode.OK, result);//result the response back
}
catch (Exception ex)
{
//log error
}
}
我希望这能让您对从哪里开始以及如何开始有所了解。如果您仍有问题,请回复。
