نحوه دسترسی به خطای های Model State در MVC
0 0

نحوه دسترسی به خطای های Model State در MVC


نحوه دسترسی به خطای های Model State در MVC

بسیاری از برنامه نویسان تازه کار که با خطاهای برنامه نویسی مواجع می شوند مخصوصا در mvc نمی دانند که باید چه کاری آنجا دهند تا علت خطاها را پیدا کنند. در این مقاله به دریافت خطاها از Model State و try cash می پردازیم.

برای این کار کافیست متد زیر را در یک کلاسی تعریف کنید.

public static string GetErrors(this ModelStateDictionary modelState)
    {
        return string.Join("<br />", (from item in modelState
                                      where item.Value.Errors.Any()
                                      select item.Value.Errors[0].ErrorMessage).ToList());
    }

متد بالا یک ModelStateDictionary به عنوان ورودی دریافت می کند برای این کار زمانی که ModelState.IsValid برابر False شد در قسمت else آن به صورت زیر خطاها را به متد GetErrors ارسال کنید و این متدخطاهای که اتفاق افتاده از هم توسط تگ br جدا شده را بر می گرداند و حال می توانید آن را نمایش دهید یا بررسی کنید وعلت خطا را پیدا کنید.

if (ModelState.IsValid)
   {
                
   }
else
   {                
      ModelState.GetErrors();
   }

برای اینکه بتوانید خطاهای اتفاق افتاده در عمل ثبت، حذف، ویرایش و... در Entity Framework را پیدا کنید کافیست در قسمت cash کدهای زیر را بنویسید.

      try
        {
            // کدهای اینتیتی فریم ورک
        }
        //در صورت بروز خطا آن را نمایش هدهد
        catch (DbEntityValidationException ex)
        {
            // Retrieve the error messages as a list of strings.
            var errorMessages = ex.EntityValidationErrors

                    .SelectMany(x => x.ValidationErrors)

                    .Select(x => x.ErrorMessage);

            // Join the list to a single string.

            var fullErrorMessage = string.Join("; ", errorMessages);

            // Combine the original exception message with the new one.

            var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage);

            // Throw a new DbEntityValidationException with the improved exception message.

            //throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors);
        }

 

دانلود

نویسنده حسین فتحی
گروه مطلب MVC
نوع مطلب سورس کد و آموزش
تاریخ انتشار ۶ آبان ۱۳۹۵
منبع ایران گنج
تعداد نظرات ۰
قیمت کاربران مهمان
توضیح توجه:
  • زمانی که روی لینک دانلود کلیک می کنید لینک دانلود به مدت 24 ساعت معتبر خواهد بود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

نظر / سوال

Captcha