با سلام
من می خواستم بدونم در صورتی که از Result استفاده کنیم چطوری باید اون پیغام رو به ویو منتقل کنیم :
var result = await _userService.ActiveAccount(active);
switch (result)
{
case ActiveEmailResult.Error:
ModelState.AddModelError("email", "حطا");
break;
case ActiveEmailResult.NotActive:
ModelState.AddModelError("email", "فعال نیست");
break;
case ActiveEmailResult.Success:
ModelState.AddModelError("email", " یوزر فعال شدی ");
break;
}
ViewData["active"] = result;
حالا توی ویو یی که فقط مثلا یه تگ p باشه.چطور این ئیغام رو باید نمایش بدیم
سلام دوست عزیز وقتتون بخیر
لطفا بیشتر توضیح بدین متوجه نشدم
با تشکر
توی کنترلر در نهایت وقتی result رو چک کرد این پیغامها رو میخوام بده
منتها توی ویو هیچ چیز خاصی ندارم
فقط یه تک p که فعال شدن کاربر رو اطلاع بده که فعال شد/ فعال نیستی / خطا
بیشتر می خوام بدونم این viewdata رو که الان سه حالت داره چطور باید برد به ویوو
خوب مشکلم الان همینه این تابع که توی کنترلر نوشتم 3 حالت داره
Error/NotActive/success
یه کم تو درکش مشکل دارم مقدار این رو می ریزه توی result میبره توی ویوو درسته ؟
صفحه هم اتفاقا از نوع ویو مدل هست که بهش دادم
حالا این سه حالت دو باره تو حالت viewdata یا viewbag چطوری کنترل میشه توی ویوو ؟ باید کنترل بشه ؟ یا نه دیکه چون توی کنترلر کنترل شد سه حالتش - دیگه تو ویو نمی خواد کنترل بشه؟
میخوام بکم تو ویوو:
اگه notfound شد فلان پیغام رو بده
اگه success شد بگو تو اکتیو شدی.....
کاربرگرامی ! لطفا به پیام صوتی زیر گوش دهید.
چقدر خوب و عالی توضیح دادید استاد همین تیکه اخر رو فقط متوجه نمی شم سه حالت داره خوب
خروجی ما enum هست
حالا اگه با viewData بفرستیم حتما باید Cast کنیم درسته ؟اگه بله اینجا به چی؟
و اینکه فرایند رو متوجه میشم که حالا با ویو دیتا پاس دادیم به ویوو و میشه استفاده کرد ولی وقتی میخوایم از if استفاده کنیم الان سه حالت داریم در واقع . که توی if میشه دو حالت null بودن و نبودنش رو چک کرد
@if (ViewData["Active"] != null)
{
<div class="alert alert-success">
@ViewData.ModelState["CustomError"].Errors[0].ErrorMessage
</div>
}
else
{
<div class="alert alert-danger"> کاربری با مشخصات ارسال شده یافت نشد.</div>
}
اینکه دقیق حالا تو ویو باید نتیجه رو چطوری چک کرد نمی فهمم.تو حالت بالا فقط ویوو دیتا نال بشه یا نشه تونستم چک کنم .اما چطور باید نتیحه enum رو چک کنم؟هر طور میخوام بنویسم نمیشه چون نوعشون فرق داره دیگه تو if

سلام دوست عزیز
اینجا باید ViewData رو Cast کنید تا بتونید با enum مقایسش کنید
میشه لطفا هم cast کردنش رو بنویسید هم مقایسه شو. به چی باید الان دقیقا کست بشه
ممنون میشم
چون دقیق ماهیت enum رو درک نکردم مشکل دارم
با توجه به اینکه با switch case چک کردیم دیکه محدد توی ویو Switch case گذاشتن اشتباهه درسته؟
کست به این صورت میشه ؟ و چگ کردن مجددش؟
@{
var result = (ActiveEmailResult)ViewData["active"];
}
<div class="container">
@switch (result)
{
case ActiveEmailResult.Error:
<p class="alert-warning"> khata</p>
break;
case ActiveEmailResult.NotActive:
<p class="alert-danger"> فعال نیست</p>
break;
case ActiveEmailResult.Success:
<p class="alert-success"> با موفقیت فعال شد</p>
break;
}
</div>
</p>