#asp.net #html #url-rewriting #anchor #asp.net-4.0
#asp.net #HTML #переписывание URL #привязка #asp.net-4.0
Вопрос:
Я использую listview, а в listview в шаблоне элемента у меня есть тег привязки с href.
<a class="linkbutton" href='<%# string.Format("Movie/Hindi-Movie/{0}/{1}",Eval("MovieId"),Eval("MovieName")) %>'><%#Eval("MovieName")%></a>
и в глобальном файле
у меня есть
routes.MapPageRoute("HindiAboutMovie", "Movie/Hindi-Movie/{MovieId}/{MovieName}", "~/Bollywood/AboutMovie.aspx");
Это работает нормально.
но в MovieName у меня есть пробел между словами, который делает URL уродливым, помещая ‘%’ в пустое пространство.
Нравится
http://localhost:5703/Movie/Hindi-Movie/43/Kucch Luv Jaisaa
где я пытаюсь сделать
http://localhost:5703/Movie/Hindi-Movie/43/Kucch-Luv-Jaisaa
Как обрабатывать эту html-сторону в строке.Формат?
Пожалуйста, направьте меня.
Ответ №1:
Вы пробовали простую настройку, такую как:
<a class="linkbutton" href='<%# String.Format("Movie/Hindi-Movie/{0}/{1}",
Eval("MovieId"), Eval("MovieName").Replace(' ', '-'))
%>'><%# Eval("MovieName") %></a>
Комментарии:
1. Это показывает ошибку, поскольку объект не содержит метод Replace.
Ответ №2:
Я попробовал этот подход.
В Html я написал
<a class="linkbutton" href='<%# string.Format("Movie/Bollywood-Movie/{0}/{1}",Eval("MovieId"),GetMovieName(Eval("MovieName"))) %>'>
и в коде, лежащем в основе, я написал метод.
public string GetMovieName(object obj)
{
string moviename = Convert.ToString(obj);
string newmoviename= moviename.Replace(" ", "-");
return newmoviename;
}
На данный момент это решило мою проблему. 🙂