Sana işi yapmak için jQuery ajax kullanabilir, söyleyebilirim. Metin kutusu odağı kaybolduğunda, DB'yi kontrol edecek ve kullanıcı adı zaten mevcut olsun veya olmasın durumu döndürecek olan denetleyici eylemine ajax alma çağrısı yapılır.
jQuery:
$(document).ready(function() {
$("#UserName").focusout(function() {
var username = $("#UserName").val();
var fullurl = '/User/UserNameCheck?username=' + username;
if (username.length > 0) {
$.ajax({
url: fullurl,
type: 'GET',
dataType: 'json',
contentType: 'application/json; charset=utf-8',
//data: username,
success: function (data) {
if (data == 'UserNotPresent') {
$("#username_NotPresent_lbl").show();
}
else if (data == 'UserPresent') {
$("#username_Present_lbl").show();
}
else {
$("#failed_check_lbl").show();
}
},
error: function (e) {
$("#failed_check_lbl").show();
}
});
}
});
$("#UserName").focus(function() {
$("#username_NotPresent_lbl").hide();
$("#username_Present_lbl").hide();
$('#failed_check_lbl').hide();
}); });
Kontrolör Eylem:
[AllowAnonymous]
[HttpGet]
public JsonResult UserNameCheck(string username)
{
Users loggedInUser = db.Users.FirstOrDefault(x => x.UserName == username);
if (loggedInUser != null)
{
return Json("UserPresent", JsonRequestBehavior.AllowGet);
}
else
{
return Json("UserNotPresent", JsonRequestBehavior.AllowGet);
}
}
Görünüm:
<div class="form-group">
@Html.LabelFor(model => model.UserName, new {@class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.UserName)
@Html.ValidationMessageFor(model => model.UserName)
@Html.Label("Sorry this user name is already in use", new {id="username_Present_lbl", @class ="ErrorLbl"})
@Html.Label("User name available for use", new {id="username_NotPresent_lbl", @class ="SuccesLbl"})
@Html.Label("Failed to validate the user name", new {id="failed_check_lbl", @class ="FailedCheckLbl"})
</div>
</div>
nasıl kimse incelemek için herhangi bir kod olmadan size yardımcı olmasını bekliyoruz do? MVC bir sunucu tarafı çerçevesidir ve metin kutularının odağını ayarlamaz. Bu Javascript kullanılarak gerçekleştirilir. –
John'u anlıyorum, kod daha önce söylediğim gibi basit olacak Kayıp odak etkinliğini arıyorum. Geliştiriciler ekibimizi göstermek için yeni bir şey var. Yeni bie olduğum için bunun üzerinde iyi düşünceler olmasını istedim. –