Asp.net mvc 4 仅当用户完成输入数据时调用远程操作方法
我一直在开发MVC4应用程序,使用远程数据注释检查数据库中是否已经存在用户名。但我的问题是,当我在TextBox中输入第一个字符时,它会调用JSON方法,对于每个字符插入,它都会调用JSON方法,但我看到的是,只有当用户在TextBox中完成用户名输入时,它才应该执行JSON 这是我的类,我在其中创建了带有远程DataAnnotation的对象Asp.net mvc 4 仅当用户完成输入数据时调用远程操作方法,asp.net-mvc-4,Asp.net Mvc 4,我一直在开发MVC4应用程序,使用远程数据注释检查数据库中是否已经存在用户名。但我的问题是,当我在TextBox中输入第一个字符时,它会调用JSON方法,对于每个字符插入,它都会调用JSON方法,但我看到的是,只有当用户在TextBox中完成用户名输入时,它才应该执行JSON 这是我的类,我在其中创建了带有远程DataAnnotation的对象 public class Student { [Display(Name = "User Name")] [Requir
public class Student
{
[Display(Name = "User Name")]
[Required(ErrorMessage = "Please enter {0}")]
[StringLength(100)] //If i give minLength here as 3 then after entering 3 characters it is going to call JSON Method which i don't want so i removed minLength Attribute
[Remote("IsAvailable", "Home", ErrorMessage = "{0} already in use!")]
public string UserName { get; set; }
}
这是我在我的家庭控制器中检查用户名的JSON方法
public JsonResult IsAvailable(string UserName)
{
bool blnResult = false;
if (UserName != null)
{
blnResult = !objDBContext.Student.Any(X => X.UserName == UserName);
}
return Json(blnResult, JsonRequestBehavior.AllowGet);
}
<div class="form-group col-lg-4">
@Html.LabelFor(model => model.UserName, new { @class = "control-label" })
<div>
@Html.TextBoxFor(model => model.UserName, new { @class = "form-control", maxlength = "100" })
@Html.ValidationMessageFor(model => model.UserName, "*")
</div>
</div>
我的视图很容易输入用户名
public JsonResult IsAvailable(string UserName)
{
bool blnResult = false;
if (UserName != null)
{
blnResult = !objDBContext.Student.Any(X => X.UserName == UserName);
}
return Json(blnResult, JsonRequestBehavior.AllowGet);
}
<div class="form-group col-lg-4">
@Html.LabelFor(model => model.UserName, new { @class = "control-label" })
<div>
@Html.TextBoxFor(model => model.UserName, new { @class = "form-control", maxlength = "100" })
@Html.ValidationMessageFor(model => model.UserName, "*")
</div>
</div>
@LabelFor(model=>model.UserName,新的{@class=“control label”})
@Html.TextBoxFor(model=>model.UserName,新的{@class=“form control”,maxlength=“100”})
@Html.ValidationMessageFor(model=>model.UserName,“*”)
提前感谢大家的宝贵反馈 请显示视图,JS associatedView很简单,没有什么。我将在上面发布,我没有为远程验证编写任何专用的JS代码>但请注意,您声明的不是默认行为。只有在(1)您进行更改并签出(此时触发验证(
onblur
)和(2)时,它才会在keyup上验证然后,您的选项卡返回并开始进行更改。在完成用户输入后,没有其他方法调用远程验证,而不是编写一个Keyup函数以避免每次调用???@Aslam..而不是编辑,最欢迎有价值的建议