ASP.NETページパラメータの処理

1021 ワード

ASP.NETページパラメータの処理?だれもできないよ.
RequestのようなものではありませんQuerystring[Id]?
しかし、以下のように簡単明瞭で、時には問題があります.
int Id = (Request.QueryString["Id"] != null) ? Convert.ToInt32(Request.QueryString["Id"]) : 0;

どうしてですか.様々な理由で、ユーザーがリンクしてきたアドレスに、#(ブラウザでコードすると%23になる)などの奇妙な記号が付いてくることがあるので、上記の文は間違っています.
頻繁に誤報をすると、サイトが信頼できないと感じさせます.そのため、処理する必要があります.
    //   ,                   ,      ,   ,     
    protected int GetIntParam(string param)
    {
        return Convert.ToInt32(_GetClearParam(param));
    }
    protected Int64 GetInt64Param(string param)
    {
        return Convert.ToInt64(_GetClearParam(param));
    }
    string _GetClearParam(string param)
    {
        Regex r = new Regex(@"(?<id>\-?\d+)", RegexOptions.IgnoreCase);
        try
        {
            return r.Match(param).Result("${id}");
        }
        catch
        {
            throw new Exception("    :" + param);
        }
    }