我被困在我认为是一个非常简单的问题上。如果 UserAgent 不包含一系列字符串,我正在尝试将用户重定向到不同的网站。我无法弄清楚的部分是如果我使用下面的代码,if 语句可以正常工作。我对此结果感到满意,但有些事情告诉我,只有一个 else 语句并且如果该语句被证明是正确的,则不执行任何操作并不是一个好习惯。
string strUserAgent = Request.UserAgent.ToString().ToLower();
if (strUserAgent != null)
{
if (Request.Browser.IsMobileDevice == true ||
strUserAgent.Contains("iphone") ||
strUserAgent.Contains("blackberry") ||
strUserAgent.Contains("mobile") ||
strUserAgent.Contains("windows ce") ||
strUserAgent.Contains("opera mini") ||
strUserAgent.Contains("palm") ||
strUserAgent.Contains("android"))
{
// Is this normal practice to only have an else block?
}else
{
Response.Redirect(AppState["redirectBack"].ToString());
}
当我尝试下一个代码块时,无论 UserAgent 字符串包含什么,脚本都会重定向用户。有人可以解释为什么会发生这种情况吗?
string strUserAgent = Request.UserAgent.ToString().ToLower();
if (strUserAgent != null)
{
if (Request.Browser.IsMobileDevice != true ||
!strUserAgent.Contains("iphone") ||
!strUserAgent.Contains("blackberry") ||
!strUserAgent.Contains("mobile") ||
!strUserAgent.Contains("windows ce") ||
!strUserAgent.Contains("opera mini") ||
!strUserAgent.Contains("palm") ||
!strUserAgent.Contains("android"))
{
Response.Redirect(AppState["redirectBack"].ToString());
}