【问题标题】:ASP.net not catching QueryStringASP.net 没有捕获 QueryString
【发布时间】:2018-01-27 03:21:37
【问题描述】:

我创建了一个 ASP.net 应用程序,我在其中根据其查询字符串更改语言。 我有两台服务器都是 https ,但一台是由 netscaler 重定向的

https://testMyLiveCode.com
https://myNetscalerServer.com/testapply-aU4uC6Q9dU94nHzVZA6zdtaQE433Xa2a/?

例如

https://testMyLiveCode.com/?ln=en

这是我的 asp.net 代码

string strNewLanguage = Request.QueryString["ln"].ToLower();
SessionHelper.Language = strNewLanguage ;
string strNewURL = Request.RawUrl.ToLower().Replace("ln=" + Request.QueryString["ln"], "");
 Response.Redirect(strNewURL);

我实际上做的是根据查询字符串更改语言并更改查询字符串和重定向

这与我的 https 服务器完美配合

https://testMyLiveCode.com/?ln=en

但这不适用于我的 netscaler url

https://myNetscalerServer.com/testapply-aU4uC6Q9dU94nHzVZA6zdtaQE433Xa2a/? 

这是我的网址

在我将查询字符串添加到它之后,它不起作用 https://myNetscalerServer.com/testapply-aU4uC6Q9dU94nHzVZA6zdtaQE433Xa2a/??ln=en

任何人都可以帮助为什么这不起作用,因为 url 已经有一个?在里面??? 感谢您的帮助

【问题讨论】:

  • https://myNetscalerServer.com/testapply-aU4uC6Q9dU94nHzVZA6zdtaQE433Xa2a/?你已经有问号了??
  • 只尝试了一个“?” ??????
  • 你只尝试了一个它显示错误
  • testapply-aU4uC6Q9dU94nHzVZA6z‌​dtaQE433Xa2a/? 那个字符串是从哪里来的?谁/什么告诉你使用它?
  • @mjwills - 它是由 netcaller 生成的 id

标签: c# asp.net query-string


【解决方案1】:

我的建议是更改包含“?”的字符串,如果你不能那么下面的说明和代码可能会帮助你 我正在根据语言数组编写下面的代码,您需要根据您的要求对其进行修改,希望这会有所帮助。这是不好的代码,您必须修改它才能使其变得更好

string[] obj = new string[5] {"hi","en","ar","or","xy" };            
        string urlString = Request.RawUrl.ToLower();
        int location = 0;
        for (int i = 0; i < obj.Length; i++)
        {
            if (urlString.Contains("=" + obj[i]))
            {
                location = i;
                break;
            }
        }
        string strNewURL = Request.RawUrl.ToLower().Replace("ln=" + obj[location], "");
        Response.Redirect(strNewURL);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    • 2017-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 2023-03-12
    相关资源
    最近更新 更多