状況:- 一意のユーザー ("userName" 変数) が開くことができる Home.aspx ページがあります。
このページには、ポップアップ ウィンドウ コントロール名「alertWindow」があります。
Home.aspx.cs の pageLoad イベントでは、NavigateUrl プロパティを使用して「alertWindow」で Welcome.aspx ページが開かれます。
Welcome.aspx ページに渡されるクエリ文字列にはパラメーター "UserName" が含まれており、このパラメーターはログインしているユーザーの名前 ("userName" 変数) に設定されます。
コード実行が Welcome.aspx.cs ページに到達すると、"Request["UserName"]" を使用して、クエリ文字列に存在する現在の "userName" パラメーターを取得\取得します。
問題:- ログインしているユーザーの名前にスペースまたはその他の通常でない文字が含まれている場合、"Request["UserName"].ToString()" は実際の正しい値を取得しません。
例の場合。ログインしている "userName" = "A&T Telecom" の場合、"Request["UserName"].ToString() は "A" のみを取得し、他には何も取得しません。
しかし、userName 文字列が "micheal" のような適切な値である場合、"Request["UserName"].ToString() は "Micheal" のみを正しく取得します。
要件:- あらゆる種類の「userName」文字列値について、Request["UserName"] から正しい値を取得する方法を提供してください。
ホーム.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (user is valid)
alertWindow.NavigateUrl = "Welcome.aspx?userName=" + currentUser.ToString();
}
Welcome.aspx.cs :-
currentUserName = Request["userName"].ToString();