【问题标题】:MVC3 Remote attribute, how to implement?MVC3 远程属性,如何实现?
【发布时间】: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">&nbsp;</span>

【问题讨论】:

    标签: asp.net-mvc-3 c#-4.0 customization remote-validation


    【解决方案1】:

    远程验证是 WebUI 项目特有的。

    因此,我将创建一个继承自实际类的 View 模型,然后覆盖需要远程验证的属性。然后您应该能够指定远程验证的控制器/操作。

    您也可以将您的验证放在一个自己的类中,就像 ScottGu 在这里演示的那样: http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx

    (往下看帖子,最后一步之前)

    也看看这个:Adding DataAnnontations to Generated Partial Classes

    【讨论】:

    • 你能演示一下吗?
    • 我添加了一个有点不同的解决方案的链接。这些使用单独的类来包含验证注释。
    • 我发现我的错误我已经创建了一个基本请求,但是现在我从 jquery(范围错误验证)中得到了奇怪的错误,我根本不使用它。我需要的修复只是将所需的输入(包括错误占位符)包装在一个表单中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-17
    • 2012-05-23
    • 2023-03-18
    • 2011-12-21
    • 1970-01-01
    • 2011-04-24
    相关资源
    最近更新 更多