2016-04-05 4 views
0

Ich arbeite an einer C# mvc-Anwendung. In meiner Website habe ich diese URL abc.com/About/WhoWeAre, wo 'Über' ist der Controller und 'WhoWeAre' ist der Name der Aktion. Aber ich möchte diese URL als abc.com/About/who-we-are zurückgegeben werden. Das Problem ist, dass ich die Aktion, die '-' enthält, nicht nennen kann. Ich versuchte Url Redirection mit HttpContext Response, konnte aber keine Lösung finden.Ändern Sie die URL (Umleitung) in asp.NET

Wenn ich die Anfrage in Route Config für "About/who-we-are" behandle und sie an "About/WhoWeAre" route, arbeitet sie mit der erforderlichen URL in der Adressleiste. Aber wenn ich nach 'About/WhoWeAre' frage, wird die Seite mit der gleichen ('About/WhoWeAre') URL in der Adressleiste angezeigt, die die URL dupliziert. Wie kann ich umleiten?

Fühlen Sie sich frei, irgendwelche Fragen zu stellen.

+0

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

Antwort

0

Sie können das ActionName-Attribut verwenden, um Ihre Aktionen mit Zeichen umzubenennen, die in C# -Methodennamen nicht zulässig sind.

+0

Thanks @ ScoobyDrew18 –

2

Verwenden Sie ActionName-Attribut, um die URL zuzuordnen. Unten ist das Beispiel

public class AboutController : Controller 
{ 

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

Es ist für diese URL arbeiten: abc.com/About/who-we-are Aber funktioniert nicht für abc.com/About/WhoWeAre –

+0

ActionName Attribut nur erlauben, einen Namen für eine Methode zu übergeben. Wenn Sie mehrere URLs für dieselbe Aktion zuordnen möchten, können Sie mehrere übereinstimmende Routen definieren. Hier ist das Beispiel, das auf Ihr Problem abbildet http://modernpathshala.com/Forum/Thread/Interview/8482/how-to-configure-multiple-url-with-same-action-name –

+0

Vielen Dank für Ihre Hilfe @ashish Ich hatte die im Link gezeigte Methode implementiert. Aber meine Anforderung ist anders, ich möchte, dass die URL, die auf dem Browser des Benutzers angezeigt wird, abc.com/About/who-we- ist, egal welche URL er eingibt –