首页 > 解决方案 > 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。

任何帮助深表感谢。

标签: c#asp.netvalidationasp.net-coreasp.net-core-mvc

解决方案


推荐阅读