使用不同的.NET Core项目进行远程验证

时间:2018-11-02 15:03:20

标签: c# asp.net-core asp.net-core-mvc remote-validation

在一个解决方案中,我有两个ASP.NET CORE项目,一个项目具有用于我的api的控制器,另一个项目具有模型。我想在其中一种请求模型中的字段上使用远程验证。我在使areaName正确以使其指向正确项目中的控制器时遇到问题。

这是我的模特:

public class PostRequestModel
{
    [Remote("DoesAccountNumberExist", "Validation", "Base.API", HttpMethod = "POST", ErrorMessage = "Account number does not exist")]
    [Range(1, 999999, ErrorMessage = "Account number cannot be greater than 6 digits")]
    public int AccountNumber { get; set; }

    [EmailAddress]
    public string Email { get; set; }
}

它在项目Base.Domain中。远程验证应该在项目Base.API中调用此控制器:

[Route("api/[controller]")]
[ApiController]
public class ValidationController : Controller
{
    private readonly IValidationHandler validationHandler;

    public ValidationController(IValidationHandler validationHandler)
    {
        this.validationHandler = validationHandler;
    }

    [HttpPost]
    public JsonResult DoesAccountNumberExist(int AccountNumber)
    {
        var accountNumberResult = validationHandler.DoesAccountExist(AccountNumber);
        return Json(accountNumberResult);
    }
}

如果直接调用该控制器,它将起作用,但是远程验证似乎找不到它。

我已经看到使用System.Web.Mvc.AreaReference.UseRoot作为areaName的建议,但这是针对ASP.NET的,而我找不到与ASP.NET Core等效的建议。

0 个答案:

没有答案