دسته بندی ها
22:39 1401/06/30

استفاده از متغیر enum و نمایش آن در View در Asp.net Core

مشخصات سوال کننده :
کاربر : hastia     امتیاز کاربر : 1     رتبه کاربر : 152
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 2891
2 نظر
hamid_b : خروجی تابع رو از نوع result در نظر گرفتم یعنی چی دقیقا ؟ مگه ما خروجی result داریم ؟ بعد توی کدهایی که نوشتید اصلا enum استفاده نشده که !

امتیاز کاربر : 518   رتبه کاربر : 4   تاریخ ثبت : 03:35 1401/07/01
hastia : result خروجی از تابعی است که نوشتم که ورودی ان یک ویو مدل است به نام EmailActiveAccountViewModel که داخل ان enum تعریف شده این سه حالت.

امتیاز کاربر : 1   رتبه کاربر : 152   تاریخ ثبت : 04:31 1401/07/01
هوش مصنوعی

پاسخ هوش مصنوعی

برای استفاده از متغیر enum در ویو در ASP.NET Core، شما می توانید از ViewData برای انتقال مقدار enum به ویو استفاده کنید. سپس در ویو با استفاده از عملگرهای شرطی می توانید این مقدار را بررسی کنید و بر اساس آن پیام های مختلفی را نمایش دهید.

ابتدا، متغیر enum شما را به عنوان یک نوع داده ای در ویو می توانید با کد زیر گسترش دهید:

public enum ActiveEmailResult
{
    Error,
    NotActive,
    Success
}

حالا در ویو شما باید این مقدار را به نوع متغیر enum تبدیل کنید. برای این کار، شما می توانید از (ActiveEmailResult)ViewData["Active"] استفاده کنید:

@{
    var result = (ActiveEmailResult)ViewData["Active"];
}

حالا برای نمایش پیام ها با استفاده از کلاس های مختلف می توانید از یک ساختار شرطی استفاده کنید:

@if (result == ActiveEmailResult.Success)
{
    
کاربر عزیز، حساب شما با موفقیت فعال شد.
} else if (result == ActiveEmailResult.NotActive) {
کاربر عزیز، حساب شما فعال نمی باشد.
} else if (result == ActiveEmailResult.Error) {
کاربر عزیز، درخواست شما با خطا مواجه شد.
}

در این کد، بسته به نتیجه enum شما، پیام مناسب با کلاس مرتبط نمایش داده می شود.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : saedbfd 15:52 1401/07/01

در ابتدا اگر در مورد نحوه تعریف و استفاده و یا مفهوم enum مشکلی دارید لینک زیر رو مطالعه کنید:

آموزش استفاده از Enum در سی شارپ

یک مثال براتون میزنم. یک کلاس به نام PubVariable ایجاد کنید و Enum زیر رو داخلش ایجاد کنید :

public class PubVariable
{
   public enum MyCity
   {
      Tehran = 1,
      Shiraz = 2,
      Tabriz = 3,
      Karaj = 4
   }
}

خب حالا به راحتی میتونید از این enum و مقادیر اون در کنترلر و یا در View خودتون استفاده کنید :

استفاده از Enum در کنترلر

public IActionResult Index()
{
   ViewBag.City = PubVariable.MyCity.Tabriz;
   return View();
}

 

استفاده از Enum در View

<div class="text-center">
    @PubVariable.MyCity.Tabriz
</div>

 

به این پاسخ امتیاز بدهید    2
امتیاز: 1664 رتبه: 1
2 نظر
hastia : این طوری؟ @if (ViewBag.active == ActiveEmailResult.Error) خوب وقتی توی کنترلر نوشتیم و چک کردیم هم اینجا باز باید چک بشه ؟ اگه این بود این ئیغام رو بده ؟ و چون حالا سه حالت داره چطوری باید با if چک کرد؟ مشکلم این دو تاست

امتیاز کاربر : 1   رتبه کاربر : 152   تاریخ ثبت : 04:41 1401/07/01
saedbfd : مطابق مثالی که نوشته شده شما می تونید به هر آیتم از enum یک عدد بدید. این عدد میتونه از view شما ارسال بشه. و عددی که از ویو ارسال شده و در کنترلر دریافت شده رو کنترل کنید که چه مقداری هست و عملیات متناسب اون انجام بشه.

امتیاز کاربر : 1664   رتبه کاربر : 1   تاریخ ثبت : 04:45 1401/07/01
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود