دسته بندی ها
14:34 1401/06/23

کنترلر کردن مقدار true و false توسط ViewBag در View

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

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 2059
3 نظر
hamid_b : شما دقیقا میخاید چیکار کنید ؟ میخواید یک رشته رو در یک ViewBag ذخیره کنید و در View نمایش بدید یا ازش استفاده کنید ؟

امتیاز کاربر : 510   رتبه کاربر : 4   تاریخ ثبت : 07:00 1401/06/24
hastia : این درست شد لینک رو اشتباه چک می کردم باید این طوری چک میکرد. https://localhost:44385/active?EmailActiveCode=8e8d24e8635a4c229ae03dfcbbf919ac ولی فقط توی ویو نمایش صفخه خود کلمه sucess/error .. میافته اینو چطوور باید به صورت متن نشون بدیم

امتیاز کاربر : 1   رتبه کاربر : 150   تاریخ ثبت : 03:08 1401/06/25
hastia : چطور میشه جندین مقدار viewdata رو که حالا ممکنه success/not found/error باشه تو ویو نشون داد. در حالیکه هر کدوم با کلاس مختلف قراره نمایش داده بشند .مثلا موفق بود سبر نمایش بدهو خطا بود قرمز.. منظورم اینه توی ویوو هم باز باید if بگذاریم؟

امتیاز کاربر : 1   رتبه کاربر : 150   تاریخ ثبت : 08:12 1401/06/26
ادامه نظرات ...
پاسخ دهنده : saedbfd 01:53 1401/06/24

سوالتون کمی مبهم هست. اگر در کار با ViewBag یا ViewData مشکل دارید می تونید لینک زیر رو ببینید که به صورت خیلی ساده استفاده از ViewBag توضیح داده شده.

نمایش پیام به کاربر با استفاده از ViewBag

دقت کنید که اگر میخواید از ViewBag برای تست true یا false بودن استفاده کنید بهتره به صورت زیر استفاده بشه:

@if (ViewBag.IsActive == 'true')
{
   <div></div>
}

چون مقدار درون ViewBag به صورت رشته string ذخیره میشه و true و false رو پیش فرض نمیشناسه.

به این پاسخ امتیاز بدهید    0
امتیاز: 1654 رتبه: 1
2 نظر
hastia : سوالم اینه که با توجه به اینکه active code رو از ورودی میگیرم دایم موقع تریس null میاد داخل چرا؟و اینکه چون خروجی به صورت ActiveEmailResult.Error هست الان در ویو مقدارش چی میشه true, false نمیشه درسته ؟حالا اینو باید چطوری چک کرد در ویو؟

امتیاز کاربر : 1   رتبه کاربر : 150   تاریخ ثبت : 11:15 1401/06/24
hastia : می خوام تست کنم از لینک localhost:44385/account/ActiveEmailAccount/ddd8915deba74659be3ca89fdc118f14 هر کاری میکنم کد ddd8915deba74659be3ca89fdc118f14 رو توی ورودی نمیگیره منظورم این بود که میکم نال وارد میشه

امتیاز کاربر : 1   رتبه کاربر : 150   تاریخ ثبت : 01:44 1401/06/24
پاسخ دهنده : hamid_b 19:44 1401/06/24

کار اولی که باید کنید در اکشن ActiveEmailAccount یک بریک پوینت بذارید و بررسی کنید که ViewBag.IsActive در خود اکشن مقدار داره یا نه. نکته بعدی اینکه شما در انتهای متد نوشتید :

return View(active);

آیا شما View به نام active دارید ؟ یعنی مطمئن هستید اسم View رو درست نوشتید ؟

به این پاسخ امتیاز بدهید    0
امتیاز: 510 رتبه: 4
2 نظر
hastia : کد ها رو اصلاح کردم و با viewdata حالا میخوام بفرستم . که فرستاده میشه به ویو. ویو هم چیزی نداره یه تک p هست که فعال و فعال نبودن کاربر رو نشون بده دیکه. مگه نباید همون رو بدم به ویو؟ مشکل اینه که هر برک ئوین می دارم همه اش active رو که یه استرینگ هست که همون activecode توی دیتا بیس هست و اصلا نمیگیردش وارد کنترلر نمیشه . اینو نمی دونم کجاش رو اشتباه نوشتم که هر کاری میکنم نمگیره

امتیاز کاربر : 1   رتبه کاربر : 150   تاریخ ثبت : 08:20 1401/06/24
hastia : این ویو مدل من هست که در ورودی همین string به نام active رو قراره بکیره public class EmailActiveAccountViewModel { public string EmailActiveCode { get; set; } } public enum ActiveEmailResult { Success, NotActive, Error, }

امتیاز کاربر : 1   رتبه کاربر : 150   تاریخ ثبت : 09:16 1401/06/24
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود