在一个解决方案中,我有两个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等效的建议。