Web Devs
641 subscribers
218 photos
22 videos
17 files
233 links
Articles, News, Jokes, Quotes, Back-End and UI/UX for web developers.
Github : https://github.com/fullStackDevsGroup
Advertising: @adsfullStackDevs
Download Telegram
#Remote_attribute

🔹 حتما تاکنون برای شما پیش آمده است که در هنگام ثبت نام در سایتی در هنگام وارد کردن ایمیل با Validation ارور هایی مبتنی بر تکراری بودن آدرس ایمیل بدون Submit کردن اطلاعات فرم دریافت کرده باشید.
راه حل انجام این کار بسیار آسان است. استفاده از Remote اتریبیوت بر بالای پراپرتی ای در ویو مدل که میخواهید برای آن Remote Validation به سرور بزنید.

▪️Remote Attribute

🔸این attribute این امکان را به برنامه نویس میدهد که با یک اسکریپت در سمت کلاینت (استفده از ایجکس) اکشن متدی را در سمت سرور صدا بزند و نتیجه را دریافت کند.

public class User
{
[Required]
[DataType(DataType.EmailAddress)]
[Remote("ValidateEmailAddress","Home")]
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>
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/additional-methods.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>

<form asp-action="SignIn" asp-controller="home" class="form-horizontal">

<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