tgoop.com/fullStackDevs/477
Last Update:
#Remote_attribute
🔹 حتما تاکنون برای شما پیش آمده است که در هنگام ثبت نام در سایتی در هنگام وارد کردن ایمیل با Validation ارور هایی مبتنی بر تکراری بودن آدرس ایمیل بدون Submit کردن اطلاعات فرم دریافت کرده باشید.
راه حل انجام این کار بسیار آسان است. استفاده از Remote اتریبیوت بر بالای پراپرتی ای در ویو مدل که میخواهید برای آن Remote Validation به سرور بزنید.
▪️Remote Attribute
🔸این attribute این امکان را به برنامه نویس میدهد که با یک اسکریپت در سمت کلاینت (استفده از ایجکس) اکشن متدی را در سمت سرور صدا بزند و نتیجه را دریافت کند.
public class User
{ [Required]
[Remote("ValidateEmailAddress","Home")]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
}
🔸 در کد بالا ValidateEmailAddress
اکشنی است درون Homecontroller
که در صورت وجود داشتن ایمیل مشابه در دیتابیس مقدار True
را باز میگرداند.
public IActionResult ValidateEmailAddress
(string email
)
{
return Json
(_repository.CheckEmailExists(email) ?
"true" : string.Format("an account for address {0} already exists.", email));
}
🔻در سمت کلاینت هم جز افزودن لایبری های مورد نیاز ، دیگر لازم به انجام کاری نیست .<script src="~/Scripts/jquery.js"></script>
<form asp-action="SignIn" asp-controller="home" class="form-horizontal">
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/additional-methods.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
<div class="form-group">
<label asp-for="Email" class="col-sm-2 control-label">Subscribe</label>
<div class="col-sm-10">
<input type="email" class="form-control" asp-for="Email" placeholder="Email address" />
<span asp-validation-for="Email"></span>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">Sign in</button>
</div>
</div>
</form>
@FullStackDevs
BY Web Devs
Share with your friend now:
tgoop.com/fullStackDevs/477