در این پست از وبسایت پرووید در رابطه با بررسی Attribute های [FromUri] و [FromBody] در ASP.NET Web API #1 صحبت خواهیم کرد.

بررسی Attribute های [FromUri] و [FromBody] در ASP.NET Web API #1

علاوه بر این Action Method ای که به صورت POST در قسمت زیر تعریف شده است را در نظر بگیرید.

public class StudentController : ApiController
{
    public Student Post([FromUri]Student stud)
    {

    }
}

همانطور که می بینید [FromBody] بر روی پارامتر ورودی این Action Method تنظیم شده است. به صورت پیش ‌فرض Web API مقدار مربوط به یک پارامتر Primitive Type را از Query String می خواند اما در این Action Method ما با استفاده از [FromBody] از Web API خواسته‌ایم که مقدار این پارامتر را از درون Request Body بخواند و نه از درون Query String.

به همین ترتیب می توان از [FromBody] به منظور دریافت کردن مقدار یک پارامتر Primitive Type از Request Body اقدام کرد. کد زیر این موضوع را نشان می دهد.

public class StudentController : ApiController
{
    public Student Post([FromBody]string name)
    {

    }
}

در تصویر زیر نیز یک HTTP Request از نوع POST را با استفاده از ابزار Fiddler به این Action Method ارسال کرده ایم.

post-request-fiddler2

نکته بسیار مهم

نکته بسیار مهم اینکه [FromBody] فقط می‌تواند بر روی یکی از پارامترهای Primitive Type یک Action Method اعمال شود. به عبارتی نمی ‌توانید از این Attribute بر روی چندین پارامتر Primitive Type از یک Action Method استفاده کنید چون نمی توان بیش از یک پارامتر را از Request Body خواند.

در تصویر زیر به صورت بسیار ساده قوانین مربوط به Parameter Binding در Web API را مشاهده می کنید.

parameter-binding

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *