إرجاع أنواع مختلفة من المحتوى من Action Methods
-
في الدروس السابقة تعاملنا مع الاناع View و String التي يمكن ارجاعها من Action. لكن هذه ليست الأشياء الوحيدة. في الواقع، يمكن في Actions Methods إرجاع أنواع كثيرة مثل JSON وHTTP.
تمام خلونا نتعرف بالتفصيل على هذه الاناع.
Returning JSON from Action
Json هي اختصار ل (JavaScript Object Notation)، والتي هي عبارة عن Object، يتم ارجاعها من Action على شكل JsonResult class
ارجاع ()Json في action موضوع معقد وكبير، سنكتفي هنا بإرجاع مجموعة من البيانات فقط لغرض توضيح الفكرة وسيتم لاحقا إضافة المزيد من التفاصيل حول ذلك.
تمام التمام ننتقل الان الى StudentsController ثم نضيف action جديده باسم GetStudentDetails واضف الكود التالي :
public JsonResult GetStudentDetails()
{
var model = new Models.StudentsModel
{
CustomerNo = "2100001",
FullName = "Layan Hatem"
};
return Json(new { Data = model });
}
تمام نفهم الكود :
استخدمنا StudentModel لتعبئة بعض البيانات، وفي هذا action استخدمنا رقم الطالب، واسم الطالب، وبعدها عملنا ارجاع هذه البيانات على شكل Json .
حتي نرجع هذه البيانات اكيد نحنا بحاجة الى اضافة View ، خلونا نضيف View جديد بالنقر يمين فوق GetStudentDetails ثم اخرAdd- View واضف الكود التالي الى View
@{
Layout = null;
ViewData["Title"] = "GetStudentDetails";
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>ReturnJson</title>
</head>
<body>
@Model
</body>
</html>
لقد قمنا هنا في ال view بعرض Model كامل بجميع البيانات الموجودة داخله
قم بتشغيل التطبيق ثم الانتقال الى الرابط
https://localhost:44382/students/GetStudentDetails
ستكون النتيجة

لاحظ ان النتيجة تعرض جميع الحقول الموجودة داخل StudentsModel على شكل Json، بعض القيم عبارة عن null وذلك لأنه لم يتم إضافة أي قيم اليها داخل action
سنتطرق بالتأكيد الى الكثير من التفاصيل حول Json في الدروس القادمه.
Returning OK (HTTP Status Code 200) from Action
من أنواع الارجاع أيضا النوع HTTP ، حيث يتم استخدام OK method التي تعيد استجابة من نوع empty HTTP Status Code 200 .
يمكن استخدامها لإرجاع objects بتنسيق مشترك بين browser وapplication with HTTP 200 status code.
نوع الإرجاع لهذه الطريقة هو class OkObjectResult.
مثال:
public OkObjectResult ReturnOk()
{
return Ok(new string[] { "Hatem", "Layan", "Lareen" });
}
في View ، يمكنك ببساطة إظهار بيانات النموذج كـ @Model.
لإرجاع HTTP 200 status code فقط بدون أي بيانات، ما عليك سوى استخدام طريقة empty() Ok .
Returning BadRequest (400), Unauthorized (401), NotFound (404) status codes from Action
يتم استخدام طريقة StatusCode الموجودة داخل Microsoft.AspNetCore.Http namespace لإرجاع أي نوع من status codes مثل BadRequest و Unauthorized و NotFound وما إلى ذلك.
نوع الإرجاع لهذه الطريقة هو class StatusCodeResult ل Microsoft.AspNetCore.Mvc namespace.
Example: Returning BadRequest – 400 Status Code
public StatusCodeResult ReturnBadRequst()
{
return StatusCode(StatusCodes.Status400BadRequest);
}
Example: Returning Unauthorized – 401 Status Code
public StatusCodeResult ReturnUnauthorized()
{
return StatusCode(StatusCodes.Status401Unauthorized);
}
Example: Returning NotFound – 404 Status Code
public StatusCodeResult ReturnNotFound()
{
return StatusCode(StatusCodes.Status404NotFound);
//or return NotFound();
}
اترك تعليقك