У меня есть Решение в рамках этого решения, есть несколько проектов, один из которых называется DomainModel, в котором я пишу свои модели и другие вещи, в основном инфраструктуру.
Теперь у меня есть еще один проект под названием WebUI, в котором я делаю своиПользовательский интерфейс (Представления, Контроллеры и т.д ...)
Я хочу использовать атрибут Remote в проекте DomainModel, который должен быть реализован в определенном представлении WebUI.
Когда я использую его в DomainModel, он дает мнеошибка в том, что он не распознает контроллер, и это правильно, он не распознает его, потому что, если я добавлю ссылку на WebUI, Vs начнут ругаться на меня, потому что это будет циклическая ссылка.
Как реализоватьthis?
это мой контроллер кода, который обслуживает RemoteValidation
[OutputCache(Location = OutputCacheLocation.None, NoStore = true)]
public class RemoteValidationController : Controller
{
public JsonResult CheckPassword(string SmsCode)
{
return Json(12345, JsonRequestBehavior.AllowGet);
}
}
// Реальная сущность в проекте DomainModel
public class SmsCustomer
{
public int CustomerId { get; set; }
public string Cli { get; set; }
//this is what i have to validate on server
public virtual string SmsCode { get; set; }
public DateTime InsertDate { get; set; }
public int CustomerDaysChoiceId { get; set; }
public int CustomerAmountChoiceId { get; set; }
[Required(ErrorMessage = "error")]
[StringLength(128, ErrorMessage = "error")]
public string SelectedWords { get; set; }
public SmsCustomerDaysChoice CustomerDaysChoice { get; set; }
public SmsCustomerAmountChoice CustomerAmountChoice { get; set; }
}
это моя сущность после расширенияэто с помощью удаленного атрибута в WebUI.Models
public class Customer : SmsCustomer
{
[Required(ErrorMessage = "Error required")]
[StringLength(9, ErrorMessage = "Error length")]
[Remote("CheckPassword", "RemoteValidation", ErrorMessage = "Error remote")]
public override string SmsCode { get; set; }
}
это мой взгляд
@Html.TextBoxFor(c => c.SmsCode)
//error span
<span class="checkbox-form-error" data-valmsg-for="SmsCode" data-valmsg-replace="true"> </span>