【发布时间】:2011-07-06 18:55:11
【问题描述】:
我有一个解决方案下的解决方案有几个项目之一,称为DomainModel, 我在其中编写模型和其他东西,主要是基础设施。
现在我有另一个名为 WebUI 的项目,我在其中做我的 UI(视图、控制器等)
我想在 DomainModel 项目中使用 Remote 属性,该属性必须在 WebUI 特定视图中实现。
当我在 DomainModel 中使用它时,它给了我一个错误,它无法识别控制器并且它是正确的它无法识别它,因为如果我添加 WebUI 的引用,Vs 开始对我发誓,因为它将是循环引用。
如何实现?
这是我的代码 为 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>
【问题讨论】:
标签: asp.net-mvc-3 c#-4.0 customization remote-validation