#asp.net
#asp.net
Вопрос:
На моей странице ASPX у меня есть это:
<h3>
<asp:HyperLink runat="server"
NavigateUrl="<%$ Resources:Path, Article%>"
Text='<%# Eval("title") %>' />
</h3>
Для NavigateUrl
атрибута я хочу указать идентификатор, например
NavigateUrl="<%$ Resources:Path, Article%>?id=4"
Но когда я это делаю, выражение не обрабатывается синтаксическим анализатором ASP.
Как я могу это сделать?
Комментарии:
1. @GlennFerrieLive: Да, я тоже. у вас был лучший способ?
2. я бы подписал другой подход. то есть определить ссылку программно. надеюсь, это сработало
Ответ №1:
Не делайте этого в разметке. Здесь у вас есть серверный элемент управления — дайте ему идентификатор (скажем, , ID="NavigationLink"
, а затем сделайте что-то подобное в вашем файле .cs:
void Page_Load(object sender, EventArgs e)
{
// I'm guessing that "4" was just an example here, so fill that piece in with a function you can call to create the proper ID.
NavigationLink.NavigateUrl = Properties.Resources.Path Properties.Resources.Article "?id=4"
}
Редактировать: я предполагаю, что когда вы говорите <%$ Resources:Path, Article%>
, что пытаетесь ссылаться на Path
Article
записи и в вашем файле ресурсов, но после дальнейшего размышления трудно точно сказать, что вы делаете. Можете ли вы быть более конкретным здесь?
Ответ №2:
Вы можете определить защищенную функцию в коде, лежащем в основе класса, и вызвать ее из разметки. Вот так:
<h3>
<asp:HyperLink runat="server"
NavigateUrl="<%# GetNavigateUrl(Eval("ID")) %>" <%-- Passing an ID as a parameter for example --%>
Text='<%# Eval("title") %>' />
</h3>
Код позади:
// Again, idObj is just an example. Any info from the data item can be passed here
protected string GetNavigateUrl(object idObj)
{
int id = (int)idObj;
string urlFromResources = // retrieving the url from resources
return urlFromResources '?ID=' id;
}
Ответ №3:
Вы можете получить значения ресурсов программно, в своем коде, и установить свойство NavigateUrl оттуда.
Ответ №4:
Попробуйте String.Форматирование…
<% =String.Format({0}?id={1}, Request.ApplicationPath, 4) %>
Похоже, вы подмешиваете в это какой-то другой язык (javascript?).
Кроме того, не забудьте присвоить вашим серверным элементам управления идентификатор.