public static void Redirect(Page page, string url)
        {
            if (page == null)
            {
                throw new ArgumentNullException("page");
            }
            StringBuilder sb = new StringBuilder();
            sb.Append("<script type=\"text/javascript\">");
            sb.Append("location.href=\"" + url + "\";");
            sb.Append("</script>");
            page.ClientScript.RegisterStartupScript(page.GetType(), "message", sb.ToString());
        }public static bool IsPostcode(string input)
        {
            if (string.IsNullOrEmpty(input.trim()))
            {
                return false;
            }
            string pattern = @"\d{6}";
            return Regex.IsMatch(input, pattern);
        }CA1054 URI 参数不应为字符串 将方法 'JScriptHelper.Redirect(Page, string)' 的参数 'url' 的类型从字符串改为 System.Uri,或者提供 'JScriptHelper.Redirect(Page, string)' 的重载,允许将 'url' 作为 System.Uri 对象来传递。 Common JScriptHelper.cs
如何验证(input.trim())),,过滤前后空格在验证不出现“分析代码”出现错误。。
二个代码,,,

解决方案 »

  1.   

    1、单纯的Redirect方法是没有问题的,问题出在你调用的Common JScriptHelper.cs 这里面跟Redirect方法不匹配。需要看JScriptHelper.cs这里面是怎么处理的。
    2、过滤前后空格在验证。input=input.Trim();//Trim()方法就是除去前后空格,不包括中间的空格。加这一句,然后下面再用input就是去除前后空格后的input了。
      

  2.   

    原因
    某类型使用名称中包含“uri”、“Uri”、“urn”、“Urn”、“url”或“Url”的字符串参数声明了方法,并且该类型没有声明采用 System.Uri 参数的相应重载。规则说明
    该规则根据 Camel 大小写约定将参数名称拆分成标记,并检查每个标记是否与“uri”、“Uri”、“urn”、“Urn”、“url”或“Url”相等。 如果存在匹配项,则该规则假定此参数表示一个统一资源标识符 (URI)。 URI 的字符串表示形式容易导致分析和编码错误,并且可造成安全漏洞。 如果某方法采用 URI 的字符串表示形式,则应提供采用 Uri 类的实例的相应重载,该重载以安全的方式提供这些服务。如何解决冲突
    要修复与该规则的冲突,请将参数更改为 Uri 类型;此更改是一个重大更改。 或者,提供采用 Uri 参数的方法的重载;此更改不是重大更改。http://msdn.microsoft.com/zh-cn/library/vstudio/ms182174.aspx