2016-04-05 3 views
0

Я работаю над приложением C# mvc. На моем сайте у меня есть этот url abc.com/About/WhoWeAre, где «О» - это контроллер, а «WhoWeAre» - это имя действия. Но я хочу, чтобы этот URL-адрес был возвращен как abc.com/About/who-we-are. Проблема в том, что я не могу назвать действие, содержащее «-» в нем. Я пробовал Url Redirection используя HttpContext Response, но не смог найти решение.Изменить url (перенаправление) в asp .NET

Если я обрабатываю запрос в Route Config для «About/who-we-are» и перенаправляет его на «About/WhoWeAre», он работает с требуемым URL-адресом в адресной строке. Но когда я делаю запрос для «About/WhoWeAre», он возвращает страницу с тем же адресом («About/WhoWeAre») в адресной строке, которая дублирует URL-адрес. Как я могу перенаправить?

Не стесняйтесь задавать любые вопросы.

+0

http://www.iis.net/downloads/microsoft/url-rewrite – Gusman

ответ

0

Атрибут ActionName можно использовать для переименования ваших действий с символами, которые запрещены именами методов C#.

+0

Спасибо @ ScoobyDrew18 –

2

Использовать атрибут ActionName для сопоставления URL. Ниже приведен пример

public class AboutController : Controller 
{ 

    [ActionName("Who-we-are")] 
    public ActionResult WhoWeAre() 
    { 
     return View(); 
    } 
} 
+0

Он работает на этот адрес: abc.com/About/who-we-are Но не работает для abc.com/About/WhoWeAre –

+0

Атрибут ActionName позволяет передавать только одно имя для одного метода. Если вы хотите сопоставить несколько URL-адресов для одного и того же действия, мы можем определить несколько подходящих маршрутов. Вот пример, который соответствует вашей проблеме. Http://modernpathshala.com/Forum/Thread/Interview/8482/how-to-configure-multiple-url-with-same-action-name –

+0

Спасибо за помощь @ashish Я реализовал метод, показанный в ссылке. Но мое требование другое, я хочу, чтобы URL-адрес, отображаемый в браузере пользователя, был abc.com/About/who-we-are независимо от того, какой URL он вводит –

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