在ASP.NET MVC中,可以使用数据注解和自定义验证来进行控制器向Ajax进行查询时的验证。以下是一个示例代码:
控制器代码:
public class UserController : Controller
{
// GET: User
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult GetUser(string username)
{
if (ModelState.IsValid)
{
// 进行查询操作
// ...
return Json(new { success = true, message = "查询成功" });
}
else
{
return Json(new { success = false, message = "验证失败" });
}
}
}
视图代码:
@model UserViewModel
@using (Html.BeginForm("GetUser", "User", FormMethod.Post, new { id = "userForm" }))
{
@Html.LabelFor(model => model.Username)
@Html.TextBoxFor(model => model.Username)
@Html.ValidationMessageFor(model => model.Username)
}
@section Scripts {
}
模型代码:
public class UserViewModel
{
[Required(ErrorMessage = "用户名不能为空")]
public string Username { get; set; }
}
在上述代码中,控制器的GetUser
方法接收一个username
参数,并通过ModelState.IsValid
判断验证是否通过。如果验证通过,可以进行查询操作并返回查询结果;如果验证失败,返回验证失败的消息。
在视图中,使用Html.BeginForm
方法创建一个表单,并在表单中使用Html.TextBoxFor
和Html.ValidationMessageFor
方法分别生成用户名输入框和验证错误消息。在提交表单时,使用jQuery的$.ajax
方法进行异步提交,并在成功或失败时显示相应的提示信息。
模型中使用[Required]
属性来标记Username
属性为必填项,并设置错误消息为"用户名不能为空"。
这样,在控制器向Ajax进行查询时,会先进行验证,如果验证不通过,则返回验证失败的消息,否则进行查询操作。