C# 根据静态属性列表验证dropdownlist selectedvalue

C# 根据静态属性列表验证dropdownlist selectedvalue,c#,javascript,asp.net,validation,C#,Javascript,Asp.net,Validation,我正在使用javascript验证aspx页面上的用户输入。我很容易验证不同场景的文本框和下拉列表 现在,在我的一个下拉列表中(针对国家),我需要检查它是否是特定服务的允许国家。我已将有效的国家/地区列表存储在静态属性中。是否有方法根据该静态属性验证我的dropdownlist选定值 任何帮助都将不胜感激 干杯, 阿比 函数validateService(源代码,args) { var country=document.getElementById(“”); var service=docume

我正在使用javascript验证aspx页面上的用户输入。我很容易验证不同场景的文本框和下拉列表

现在,在我的一个下拉列表中(针对国家),我需要检查它是否是特定服务的允许国家。我已将有效的国家/地区列表存储在静态属性中。是否有方法根据该静态属性验证我的dropdownlist选定值

任何帮助都将不胜感激

干杯, 阿比

函数validateService(源代码,args)
{
var country=document.getElementById(“”);
var service=document.getElementById(“”);
//从我的静态类获取允许的国家/地区列表
var countryList=document.getElementById(“”);
如果(service.value==“P”)
{
//我想做这样的事情
如果(!countrylist.Contains(country.value))
{
args.IsValid=false;
}
否则{
args.IsValid=true;
}
}
返回;
}

更新(附加信息):静态属性是只读的,因此不能从页面对其进行篡改。

此验证应在服务器端而不是客户端进行。当我打开您的页面并在“验证”列表中插入“Oz”作为国家/地区时,没有什么可以阻止我使用greasemonkey更改您的静态列表。它是只读静态属性,因此无法从aspx页面更改。在客户端处理它仍然是个坏主意吗?还有其他更好的方法在客户端处理吗?+1至少应该在服务器端处理。客户端验证是额外的。如果用户关闭浏览器中的javascript怎么办?有客户端验证很好,这样用户就不必发回页面,但是你必须有服务器端验证,以确保信息实际有效。使用像greasemonkey这样的插接式mod引擎,没有“只读”这样的东西。Greasemonkey所做的是在客户端加载页面后,将额外的javascript附加到页面上。完成后,greasemonkey脚本中的任何javascript都可以对DOM的内容执行任何操作。无法在客户端锁定浏览器。例如,这里有一个greasemonkey脚本,用于绕过rapidshare下载延迟,该延迟依赖于只读值来计算启用下载链接之前的剩余时间。
function validateService(source, args) 
{
            var country = document.getElementById('<%= ddDestCountry.ClientID %>');
            var service = document.getElementById('<%= ddService.ClientID %>');
// Get allowed country list from my static class
            var countryList = document.getElementById('<%= StaticProperties.EUCountryList %>');

            if (service.value == "P") 
            {
               // I want to do something like this
                if (!countrylist.Contains(country.value)) 
                {
                    args.IsValid = false;
                }
                else {
                    args.IsValid = true;
                }
            }
            return;
        }