Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

วิธี Return Custom Result Type จาก Action Method ใน C# ASP.NET WebAPI

สร้าง Custom Result Type โดย implement Interface IHttpActionResult ซึ่งมีเมธอด ExecuteAsync สร้าง HttpResponseMessage แบบ Asynchronous

public interface IHttpActionResult
{
    Task ExecuteAsync(CancellationToken cancellationToken);
}

ตัวอย่าง Custom Result Class

using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using System.Web.Http;

namespace DemoWebApplication.Controllers
{
    public class CustomResult : IHttpActionResult
    {
        string _value;
        HttpRequestMessage _request;

        public CustomResult(string value, HttpRequestMessage request)
        {
            _value = value;
            _request = request;
        }

        public Task ExecuteAsync(CancellationToken cancellationToken)
        {
            var response = new HttpResponseMessage()
            {
                Content = new StringContent($"Customized Result: {_value}"),
                RequestMessage = _request
            };
            return Task.FromResult(response);
        }
    }
}

การใช้งานใน Controller

using DemoWebApplication.Models;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;

namespace DemoWebApplication.Controllers
{
    public class DemoController : ApiController
    {
        public IHttpActionResult Get(int id)
        {
            List students = new List
            {
                new Student { Id = 1, Name = "Mark" },
                new Student { Id = 2, Name = "John" }
            };
            var studentForId = students.FirstOrDefault(x => x.Id == id);
            return new CustomResult(studentForId.Name, Request);
        }
    }
}

ผลลัพธ์จาก Postman:

วิธี Return Custom Result Type จาก Action Method ใน C# ASP.NET WebAPI