0

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

4

1 回答 1

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.
}
于 2013-06-13T20:59:34.883 回答