没有查询字符串时显示页面

时间:2013-03-29 17:35:41

标签: c# asp.net query-string

我有一个页面,要求我在页面加载时有一个gameweek 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.

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

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