У меня есть два проекта 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.