تغییر متن خطا در زمان ثبت کاربر جدید

6/4/2016 MVC
3169

عموما ثبت کاربر را با استفاده از Identity در MVC  انجام میدهیم ، برای ثبت نام ابتدا یه ActionResult  نوشته بودم که اطلاعات رو از ویوو میگرفت و ثبت میکرد ، چک نگرده بودم که اگر ثبت نکرد پیغام خطایی بده و کاربر رو بدون ثبت اطلاعات به صفحه ثبت کامل راهنمایی میکرد. خوب حال میخواستم این ایرادها رو برطرف کنم 

اول اینکه باید علاوه بر شرط ModelState شروط دیگر رو هم چک میکردم برای همین کد رو اینجوری نوشتم 

  البته در ابتدا قسمت کد زیر را اضافه نکرده بودم که اضافه کردم

 if (adminresult.Succeeded)
                    {
                        return RedirectToAction("RegisterSuccess",new { RegisterStatus = true });
                    }

با این کد چک میکنیم که اگر ثبت به درستی اجام شد به اکشن RegisterSuccess برود.

خوب مورد بعد این بود که در صورتی که ایمیل شخص قبلا تکراری بود پیغام به صورت فارسی نمایش داده نمیشد برای همین باید خطا را تغییر میدادم ،

راه حلهای زیادی بود اما یکی که من انجام دادم مراجعه به  Controllers/AccountController.cs بود و تغییر به صورت زیر

private void AddErrors(IdentityResult result)
{
    foreach (var error in result.Errors)
    {
        if (error.StartsWith("Name"))
        {
            var NameToEmail= Regex.Replace(error,"Name","Email");
            ModelState.AddModelError("", NameToEmail);
        }
        else
        {
            ModelState.AddModelError("", error);
        }
    }
}