2014-08-27 2 views
-1

Это может быть проблема с Session, а не ToString(), я не уверен.Как избавиться от нежелательных пробелов после использования ToString() в C#?

У меня есть две страницы .aspx, и я хочу передать IP-адрес из данных, переносимых с одной страницы на другую. Когда я это делаю, добавляются пробелы, которые я не хочу. Простой вариант кода заключается в следующем:

первая страница .aspx

int num = DropDownList1.SelectedIndex; 
DataView tempDV = SqlDataSource2.Select(DataSourceSelectArguments.Empty) as DataView; 

Session["camera"] = tempDV.Table.Rows[num].ItemArray[2]; 
Response.Redirect("test.aspx"); 

test.aspx страница

string ipCamAdd = Session["camera"].ToString(); 

TextBox1.Text = "http://" + ipCamAdd + "/jpg/image.jpg?resolution=320x240"; 

, что я хочу, чтобы напечатать это

http ://ipadd/jpg/image.jpg?resolution=320x240 

но что выдает

http//ipaddress  /jpg/image.jpg?resolution=320x240 

как я могу это исправить?

Кроме того, я задал этот вопрос в надежде, что кто-то скажет мне, почему это происходит. Извините за ошибку.

+0

'ipCamAdd.Trim()' – entropic

+0

повторно «по какой-либо причине этот сайт не печатает то, что я хочу »- это были бы правила форматирования markdown и html; Я отредактировал ваш вопрос - если вы нажмете «edit», вы сможете увидеть, как вы это делаете. –

ответ

3

Попробуйте это:

string ipCamAdd = Session["camera"].Trim().ToString(); 

за действительное беспокойство, Session [ "камера"] может быть нулевым, добавить функцию, например, следующее к коду

static string ToSafeString(string theVal) 
    { 
     string theAns; 
     theAns = (theVal==null ? "" : theVal); 
     return theAns; 
    } 

Тогда использование:

строка ipCamAdd = Sessi на [ "камера"] ToSafeString() Обрезка()..;

+0

Было бы даже лучше обрезать его, когда он будет * в * сеансе ... (возможно, и то, и другое; обрезка не выделяет новый экземпляр строки, если он ничего не меняет, поэтому никакого реального воздействия) –

+0

Это сломается если вызывается до того, как установлена ​​переменная сеанса. – Smeegs

+0

@Smeegs, так же как и исходный код; p –

2

Вы можете использовать string.Replace, если вы просто хотите, чтобы избавиться от пространств:

TextBox1.Text = "http://" + (ipCamAdd ?? "").Replace(" ", "") + "/jpg/image.jpg?resolution=320x240"; 
1

Обрежьте результат перед установкой на сессию.

Session["camera"] = tempDV.Table.Rows[num].ItemArray[2].Trim(); 

Кажется В SQL вашего типа данных char(*) если преобразовать тип данных в varchar и повторно вводить данные, вы не получите какие-либо дополнительные пространства

Смежные вопросы