2013-07-01 6 views
0

в моем пользовательском элементе управления У меня есть гиперссылка по ссылке должно быть страницы с именем «export.ashx» в той же папке, что страницы cotaines пользователя Contrlкак получить путь URL страницы из пользовательского элемента управления

<asp:HyperLink CssClass="btnblue" ID="hypAddItem" Visible="false" NavigateUrl="" runat="server"><i class="icon-plus"></i> Add Part</asp:HyperLink> 

и в моем кодексе

hypAddItem.NavigateUrl = pageUrl + "Export.ashx"; 

, что мне нужно поставить в PAGEURL, который будет работать на каждой папке?

Моя структура каталогов

root 
    folder1 
    pageWithUC.aspx 
    export.ashx 
    folder2 
    pagewithUC.aspx 
    export.ashx 
    usercontrols 
    uc.acsx 
+1

~/export.aspx ... "~" означает домашний каталог. – Zaki

+0

my export.ashx не находится в домашнем каталоге. он находится в каталоге страниц. – eyalb

ответ

0

Вы можете сделать это:

var url = Request.Url.FilePath; 
var folder = System.IO.Path.GetDirectoryName(url) 
hypAddItem.NavigateUrl = folder + "/Export.ashx"; 
+0

не работает, дайте мне URL-адрес папки usercontrol. – eyalb

+0

Можете ли вы показать мне структуру каталогов? –

+0

отредактировал вопрос. – eyalb

2

ли это:

~/folder1/export.ashx 

и если вы хотите вторую папку:

~/folder2/export.ashx 

~ знак обозначает ваш корневой кортеж.

Вы также можете вернуться назад один каталог, из uc.acsx, и зайти внутрь folder1/folder2:

../folder1/export.ashx 
+0

код находится в UC-коде, а не на странице. Я не хочу добавлять свойство для URL. – eyalb

0

Вы можете получить текущий URL из запроса и объединить его с ASHx, как это:

Uri myUri = new Uri(HttpContext.Current.Request.Url, "Export.ashx"); 

затем использовать методы класса Uri, чтобы получить относительный путь:

hypAddItem.NavigateUrl = myUri.PathAndQuery; 
0

Вы можете попробовать с Server.MapPa th (~) и использовать затем папку вместе с ней

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