【问题标题】:Pass parameter client to server-side with RIA services使用 RIA 服务将参数客户端传递到服务器端
【发布时间】:2011-09-26 06:45:21
【问题描述】:

我正在使用带有 EF 和 Silverlight UI 以及内置验证框架的 RIA 服务。问题如下:

验证规则根据用户输入客户端略有不同,考虑这个简单的场景。

protected override ValidationResult IsValid(object value, ValidationContext  validationContext)
{
    if (validation_mode == Modes.Normal)
    {
        // do normal validation
    }
    else
    {
        // do admin validation
    }
}

我想要一种将“validation_mode”传递给服务器端 RIA 服务的方法。我可以以某种方式将它传递给 ValidationContext.Items 集合吗?也许我的做法是错误的?

提前致谢!

【问题讨论】:

    标签: .net silverlight wcf entity-framework wcf-ria-services


    【解决方案1】:

    您可以将validation_mode添加到ValidationContext:

    ValidationContext.Items.Add(new KeyValuePair<object,object>("validation_mode", validation_mode)); 
    

    【讨论】:

    • 我试过了,但它似乎没有传递到服务器端?
    • 您可以创建一个服务器端方法并像这样在客户端调用它: [Invoke] public void SetItem(string value) { this.ValidationContext.Items.Add("key", value) ;虽然 domainservice 失去了状态,所以这个值并不总是可用的......想法?
    • 你如何确定它没有传播到服务器端?我们只是将一个项目添加到一个打开的验证项目列表中。也许将validation_mode转换为字符串,然后再将其输入KeyValuePair?
    • 嗯,你在哪里访问验证上下文?
    猜你喜欢
    • 2016-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    相关资源
    最近更新 更多