Маршрутизация URL в теге привязки в asp.net 4.0?

#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;
    }
  

На данный момент это решило мою проблему. 🙂