چگونگی رفع پیغام خطای Post 400 در Blazor

چگونه ERROR Post 400 را در بلیزور حل کردم

توسط admin | گروه برنامه نویسی BLAZOR | 1400/11/18

نظرات 0

 چند روز پیش که در حال کار کردن بر روی ماژول درخواست نمایندگی پروژه تحت وب مدیریت خدمات پس از فروش مشتریان در BLAZOR بودم به ارور عجیبی برخوردم که هیچ پیغام مناسبی هم برای راهنمایی ارائه نکرده بود. این ارور در حقیقت POST 400 ERROR بود که گاهی اوقات بنا به دلایلی در لایه Client در بلیزور به وجود می آید. در پروژه از AutoMapper استفاده کرده بودم تا از پیچیدگیهای بیهوده در هنگام استفاده از کلاسها در لایه های Shared و Server جلوگیری بشه. بعد از اجرای صفجه با ارور زیر مواجه شدم.


رفع پیغام خطای Post 400 در برنامه نویسی تحت وب با Blazor

تمامی کلاسهای مربوط به بخش Server که با کلاس مربوطه در ارتباط بودن رو بررسی کردم و کلاسهایی که MAP شده بود رو هم دونه دونه بررسی کردم. همه چیز درست بود. ولی مشکل همینجا بود که همه چیز درست بود. به عبارت دیگه تمامی قیدهایی که در کلاس در بخش Server وجود داشت عینا به لایه Shared هم منتقل شده بود. البته کلاس موجود در لایه Shared دارای فیلدهای کمتری نسبت به کلاس اصلی بود. به همین خاطر از Mapping استفاده کرده بود.
Mapper.Map(AgeMp, Age);
Mapper.Map(Age, AgeMp);

کلاس مورد نظر به شکل زیر بود که در لایه SHARD استفاده شده بود:
    public class AgeMp
    {
        [Key]
        public int AgentId { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        [Display(Name = "EmailAddress"), Required(ErrorMessage = "please enter {0} ")]
        public string Email { get; set; }
        [Required]
        public DateTime? DateOfBrith { get; set; }
        public String Address { get; set; }
        [Required]
        public Boolean BlnIsValidate { get; set; }
        public ActivityType ActivityType { get; set; }
    }
مشکل اساسی و اصلی این بود که فیلد BlnIsValidate که مقدارش هم باید وارد میشد و در حقیت از فیلدهای اجباری بود ولی مقدار دهی اولیه آن انجام نمیشد و طی عملیاتی در بخش Client بر اساس یک سری شرایط قرار بود مقدار دهی بشود ولی در همان ابتدا لازم نبود. به همین خاطر در هنگام ValidSUbmit در EditForm مربوطه در همان ابتدا ارور مشاهده می شد و هیچ دیتایی سمت Server ارسال نمی شد. در حدود یکی دو ساعت وقت گذاشتم تا متوجه شدم که ایراد از همان فیلد بود که باید مقداردهی اولیه می شد. اولین کاری که انجام دادم در لایه Shared عبارت [Required]  رو حذف کردم. پروژه رو مجددا اجرا کردم و ارور رفع شده بود و محتوای درخواستی با ساختاری از کلاس به سمت لایه Server ارسال و به صورت کامل ثبت شد.

 

0 نظر

نظر محترم شما در مورد مقاله های وب سایت برنامه نویسی و پایگاه داده

نظرات محترم شما در خدمات رسانی بهتر ما را یاری می نمایند. لطفا اگر مایل بودید یک نظر ما را مهمان فرمائید. آدرس ایمیل و وب سایت شما نمایش داده نخواهد شد.

حرف 500 حداکثر