Как избежать обратной косой черты в строке запроса - PullRequest
2 голосов
/ 09 марта 2012

У меня есть SqlDataSource, который берет значение из строки запроса и связывает его с видом сетки. Все работает хорошо, если только значение строки запроса не имеет обратной косой черты. Как мне избежать обратной косой черты?

Пример:

www.example.com? Id = testuser -> работает.

www.example.com? Id = test \ user -> не работает, даже если «test \ user» существует.

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString1 %>" 

    SelectCommand="SELECT * FROM User WHERE userID = @id">
    <SelectParameters>
        <asp:QueryStringParameter Name="id" 
            QueryStringField="id" DbType="String" />
    </SelectParameters>
</asp:SqlDataSource>


<form id="form1" runat="server">
  <div>
    <asp:GridView ID="GridViewTask" runat="server" AutoGenerateColumns="False" 
        DataSourceID="SqlDataSource1">
        <Columns>                
            <asp:BoundField DataField="UnitId" HeaderText="UnitId" ReadOnly="True" 
                SortExpression="UnitId" />
            <asp:BoundField DataField="UserName" HeaderText="UserName" ReadOnly="True" 
                SortExpression="UserName" />           
        </Columns>
    </asp:GridView>
  </div>
</form>

Спасибо за вашу помощь.

Ответы [ 3 ]

2 голосов
/ 09 марта 2012

Попробуйте встроенную утилиту:

    String Url = @"www.example.com?id=test\user";

    Url = HttpUtility.UrlEncode(Url);

http://msdn.microsoft.com/en-us/library/system.web.httputility.urlencode.aspx

Подсказка: есть также функция UrlDecode.

1 голос
/ 09 марта 2012

Обратная косая черта %5C в строке запроса.

0 голосов
/ 19 июня 2012

Вы уверены, что "www.example.com?id=test\user" даже успешно запускает страницу?Сокращение URL-адресов может привести к тому, что сервер попытается найти не ту страницу в неправильном месте.

Вы будете использовать Server.UrlEncode, если создаете URL-адрес с другой страницы / программы;если вы создаете его вручную, вам следует просто закодировать его самостоятельно (используйте предложение Джона о% 5C).

...