استفاده از متغیر enum و نمایش آن در View در Asp.net Core
با سلام من یه تابعی دارم که خروجی آنرا از نوع result گرفتم.برای نمایش حالت های فعال سازی ایمیل کاربر در ثبت نام
public async Task<IActionResult>ActiveEmailAccount(EmailActiveAccountViewModel active)
{
if (ModelState.IsValid)
{
var result = await _userService.ActiveAccount(active);
switch (result)
{
case ActiveEmailResult.Error:
ModelState.AddModelError("CustomError", "کاربر عزیز، درخواست شما با خطا مواجه شد. ");
break;
case ActiveEmailResult.NotActive:
ModelState.AddModelError("CustomError", "کاربر عزیز، حساب شما فعال نمی باشد. ");
break;
case ActiveEmailResult.Success:
ModelState.AddModelError("CustomError", "کاربر عزیز، حساب شما با موفقیت فعال شد. ");
break;
}
ViewData["Active"] = result;
}
return View(active);
}
می دونم برای اینکه این سه حالت توی ActiveEmailResult را که از نوع enum هست بخوام ببرم به ویو باید از viewdata استفاده کنم.
حالا با توجه به اینکه مفهوم enum رو کمی مشکل دارم نمیدونم چطور باید ازش توی ویوو استفاده کرد
اول اینکه می دونم باید cast کرد . خوب اینجا باید به چی Cast بشه؟
دوم اینکه برای اینکه سه حالت پیغام رو با کلاس های مختلف بتونم نشون بدم باید چکار کنم توی ویوو؟ بیشتر منظورم نوشتن Syntax و اینکه خروجی رو چطور باید مقایسه کرد تو ویو؟ مثلا اوکی بود با کلاس success بشه و notfound بود با کلاس ....
پاسخ هوش مصنوعی
برای استفاده از متغیر 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 شما، پیام مناسب با کلاس مرتبط نمایش داده می شود.
در ابتدا اگر در مورد نحوه تعریف و استفاده و یا مفهوم 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>
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2