زمانی که پروژه ASP.NET Core MVC می سازیذ، تک کنترل گر از پیش آماده به نام HomeController دارای چندین متد Action است که همگی گونه ای از IActionResult را برگشت می دهند. معمولا این مقدار برگشتی نیز به کمک متدی به نام ()View انجام می شود که خود این متد عضوی از کلاسی به نام ViewResult است و این بدین معنی است که در اینجا برآیند برگشتی از Action Method یک فایل نما (View Page) است.

برگشت یک رشته ساده

شاید این رایج نباشد که یک رشته ساده از سوی Action Method برگشت داده شود ولی امکان پذیر است. برای این که یک متد کنترل گر، رشته ای برگشت دهد باید نخست گونه مقدار برگشتی متد به string تغییر کند و سپس یک رشته پیش روی دستور resturn قرار گیرد. در کد زیر تنها یک رشته و آن هم زمان کنونی در برگه نخست (Index Page) نشان داده می شود.

 درکد زیر دو متد در کلاس HomeController است که نخستین یک رشته و دومین IActionresult را برگشت می دهد. همچنین بر پایه نوشته  مفهوم مسیرها در ASP.NET Core MVC – بخش دوم در از شیوه Attribute Route کمک گرفته ایم.

ResultView

شکل زیر فهرست همه نمونه های IActionResult نشان داده شده است که ResultView یکی از آنها است. متد ()View عضوی از ResultView است که یک فایل نما را برای متد کنترل گر برگشت می دهد. بنابراین می توانیم بگوییم که متدهای کنترل گر می توانند دادهای گوناگون همانند نما یا یک شی (Object) را برگشت دهند.

ContentResult

با ContentResult می توانید هر نوع محتوایی مانند یک رشته یا محتوای HTML یا JSON و یا XML را برگشت دهید ولی در میان آنها، رشته پیش فرض است. در کد زیر متد ()Index از کلاس HomeController یک رشته دربرگیرنده تگ های HTML برگشت داده می شود. توجه کنید که مقدار برگشتی متد ()Index از کلاس ContentResult است و این مقدار برگشتی به کمک متد ()Content برگشت داده می شود.

کلاس MediaTypeHeaderValue

در کد بالا یک رشته به فرمت JSON (و نه خود JSON) را آماده کردیم و سپس به کمک کلاس MediaTypeHeaderValue محتوای فرستاده شده به برگه وب را از گونه JSON نشان داده ایم. تابع سازنده کلاس MediaTypeHeaderValue یک رشته ورودی مانند application/plain-text یا application/json را دریافت می کند که این رشته فرمت پاسخ را نشان می دهد. بنابراین یک درخواست بر روی نشانی URL به برنامه فرستاده شده و سپس با الگوی مسیر تطابق داده شده است و در پایان این درخواست به متدی از کلاسی کنترل گر فرستاده شده و سپس آن متد در پاسخ یک محتوای JSON را (application/json) را برگشت داده است. در شکل زیر می توانید ببینید که سرور پاسخ دهنده Kestrel است.

ObjectResult

یکی دیگر از گونه های برگشتی ObjectResult است که بیشتر برای برنامه Web API به کار می رود، زیرا برایند را به شی تبدیل می کند که می تواند از راه HTTP فرستاده شود. منظور از شی می تواند یک کلاس نوشته شده بدست برنامه نویس باشد. برای نمونه در کد زیر یک کلاس به نام Employee داریم که دارای چندین ویژگی (Property) است. برای آنکه بتوانیم نمونه(هایی) از آن را با پروتکل HTTP نمایش دهیم، می توانیم از ObjectResult کمک بگیریم.

اکنون یک متد کنترل گر به نام Show نوشته ایم که در آغاز یک نمونه از کلاس Employee ساخته ایم و این همان شی است که می خواهیم با پروتکل HTTP بر روی نشانی https://mydomain.com/home/show نمایش دهیم، پس نیاز است تا پیش روی دستور return یک نمونه تازه از کلاس ObjectResult بسازیم و سپس نام نمونه از کلاس، یعنی متغیر employee را به آن بفرستیم تا در برگه نشانی https://mydomain.com/home/show نشان داده شود.

کلاس ها در برنامه نویسی ASP.NET Core MVC یک نقش برجسته دارند و آن هم کلاس های مدل در Entity Framework برای مدل سازی پایگاه داده و ساخت جدول های آن است. بنابراین برای فرستادن و نمایش یک شی روی HTTP نیاز است تا این متد به کار گرفته شود. همچنین ما می توانیم درون مایه شی را به یکی از الگوهای XML یا JSON تبدیل کنیم.

JsonResult

این نیز همانند ObjectResult یک شی را بر روی HTTP فرستاده و نمایش می دهد ولی این متد ویژه آماده سازی فرمت JSON است و از این رو پاسخ آن به گونه application/json است. در کد زیر همان نمونه کلاس Employee را فرستاده ایم و می بینید که فرمت نمایش داده شده از گونه JSON است. توجه کنید فرمت پیش فرض ObjectResult همانند JsonResult نیز JSON است.

EmptyResult

EmptyResult نیز یکی از نمونه های برگشتی متدهای کنترل گر است که هیچ چیزی برگشت نمی دهد و می توان آن را همانند Void بدانیم. متد کنترل گر منطق برنامه را انجام می دهد ولی اگر بخواهیم دیگر چیزی به کاربر بر مرورگر نشان داده نشود، باید EmptyResult را به کار ببریم. به گفته دیگر EmptyResult یک برگه پوچ و تهی را برگشت می دهد