عموما ثبت کاربر را با استفاده از 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);
}
}
}