c# - ASP.NET Core 2.1 中的远程验证值未传递给控制器
问题描述
我正在尝试使用以下文档进行远程验证:https ://docs.microsoft.com/en-us/aspnet/core/mvc/models/validation?view=aspnetcore-2.1#remote-validation
我的方法如下所示:
[AcceptVerbs("Get", "Post")]
public IActionResult UniqueName(string name) //name comes in as null
{
if (_categoryRepository.DoesCategoryNameExist(name))
return Json($"{name} already exists.");
return Json(true); //valid
}
验证属性的使用方式如下:
public class Category
{
[Key]
public int Id { get; set; }
[Required(ErrorMessage = "Name is required and must not be empty.")]
[StringLength(200, ErrorMessage = "Name should not exceed 200 characters.")]
[Remote(action: "UniqueName", controller: "Category")]
public string Name { get; set; }
}
视图如下:
<div class="form-group">
<input asp-for="Category.Name" class="form-control frmInput" id="categoryName" placeholder="Name">
<span asp-validation-for="Category.Name" class="text-danger"></span>
</div>
远程验证被触发,但是 UniqueName 方法中的 name 参数为 null。
任何帮助深表感谢。