2013-03-29 48 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")

相關問題