Im Global.asax.cs
-Datei haben Sie standardmäßig die folgende Route zugeordnet:
routes.mapRoute(
"Standard",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional });
Das bedeutet, dass eine URL wie http://localhost:2345/Bank/EmployeeDetails/3d34xyz
zum Bank
-Controller, zur EmployeeDetails
-Aktion führt und den Wert 3d34xyz
in einen Parameter mit dem Namen id
übergibt. Es ist vollkommen in Ordnung, einen String zu übergeben, aber um es funktionieren zu lassen, haben Sie zwei Optionen:
1) Benennen Sie die Variable in Ihrer Aktionsmethode in id
um.
public ActionResult EmployeeDetails(string id) { ... }
2) Fügen Sie eine weitere Route hinzu, die mit einem beliebigen Namen für Ihren String übereinstimmt. Stellen Sie sicher, dass sie spezifischer als die Standardroute ist und platzieren Sie sie vor der Standardroute in der Global.asax.cs
-Datei.
routes.mapRoute(
"BankEmployeeDetails"
"Bank/EmployeeDetails/{myString}"
new { controller = "Bank", action = "EmployeeDetails", myString = UrlParameter.Optional });
Dies wird einen Standardwert von null
an myString
übergeben, wenn kein Wert in der URL übergeben wird, aber mit der von Ihnen angegebenen URL wird der Wert 3d34xyz
übergeben.