2013-03-29 35 views
0

我有一个页面,需要我在页面加载时拥有一个游戏周期ID来运行特定的方法。当查询字符串不存在时显示页面

这是通过查询字符串解析,并与检索如下:

gameweekID = Request.QueryString["gameweekID"]; 

例如:

page1.aspx?gameweekID=1 

但我的问题是对场合的URL是Page1.aspx的,其中没有提供查询字符串。

我怎样才能默认页面gameweekID = 1,而不是让错误

Procedure or function 'GetPredictions' expects parameter '@gameweekID', which was not supplied.

+0

你是如何访问数据库的代码?例如,SqlDataSource,ADO.Net – Win

回答

3

你可以这样做:

gameweekID = Request.QueryString["gameweekID"] ?? "1"; 

这意味着如果Request.QueryString["gameweekID"]null使用"1"相反,但如果您要求page1.aspx?gameweekID=page1.aspx?gameweekID=foo,这仍然会产生错误。

也许更优雅的方法是验证gameweekID实际上是一个整数。就像这样:

string gameweekIDString = Request.QueryString["gameweekID"]; 
int gameweekID; 
if (!int.TryParse(gameweekIDString, out gameweekID)) 
{ 
    gameweekID = 1; 
} 
+0

string gameweekIDString = Request.QueryString [“gameweekID”];如果querystring没有任何参数,这将通过一个对象引用没有设置为null异常,最好的方法是先验证它们(如果Request.QueryString [“gameweekID”]!= null && Request.QueryString [“gameweekID”]。 value!=“”) – Vishal

+1

@VishalSachdeva'string gameweekIDString = Request.QueryString [“gameweekID”]'不会抛出异常。另外,我使用'int.TryParse'验证字符串是否正确,如果输入字符串为null或为空或不可解析,它将返回false。 (虽然我从我的答案中删除了不必要的'空'检查) –

0

if(Request.Querystring["gameweekID"] === null) Response.Redirect("page.aspx?!gameweekID=1")

相关问题