id在url中的页面 - 我应该在Page_Load中检查它是否为整数?

时间:2013-06-13 20:51:03

标签: asp.net

如果我有自定义电影的详细信息页面(数据库中的主键电影是整数),例如:http://yyy.yy/PagesDetails.aspx?filmId=5 - 我应该在Page_Load事件中验证filmId是否为数字?因为有人可以修改链接,设置filmId =例如'abc'然后呢?

1 个答案:

答案 0 :(得分:3)

在将其用于整数值的操作之前,您可以检查它是否是有效整数。

您可以编写像这样的扩展方法

public static bool IsNumeric(this string input)
{
  int temp;
  return int.TryParse(input, out temp);
}

并在您的页面加载中使用它

string strFilmId=Request.QueryString["filmId"];
if(strFilmId.IsNumeric())
{
  int filmId=Convert.ToInt32(strFilmId);
  //use the integer variable now
}
else
{
  // show the message to user that the url is not valid.
}