私はソリューションの下に、ドメインモデルである と呼ばれるプロジェクトはほとんどありません。私のモデルやその他のものは主にインフラストラクチャとなります。MVC3リモート属性、実装方法
は今、私は私のUI行うれるのWebUIと呼ばれる別のプロジェクト(ビュー、コントローラ、など...)私はWebUIの特定のビューで実装しなければならないドメインモデルプロジェクトでのリモート属性を使用したい
を持っています。
DomainModelで使用すると、コントローラを認識せず、認識できないというエラーが表示されます.WebUIのリファレンスを追加するとVsが私に誓うようになります。循環参照である。
これを実装する方法は?
これはこれは私がWebUIの中に、リモートのattrでそれを拡張した後、私の実体であるドメインモデルプロジェクトに
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; }
}
本当の実体RemoteValidation
[OutputCache(Location = OutputCacheLocation.None, NoStore = true)]
public class RemoteValidationController : Controller
{
public JsonResult CheckPassword(string SmsCode)
{
return Json(12345, JsonRequestBehavior.AllowGet);
}
}
//を提供しています私のコード コントローラですモデル
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>
あなたはそれを実証できますか? – IamStalker
少し違うソリューションへのリンクを追加しました。それらはバリデーション注釈を含むために別々のクラスを使用します。 – MartinHN
それは私を助けない、それはまだ動作しません。 – IamStalker