Ich baue ein Helpdesk-Ticket-System für einen Client mit ASP.NET MVC 1.0/C#. Ich habe Steven Sanderson's "App Areas in ASP.NET MVC, Take 2" implementiert und es funktioniert super.ASP.NET MVC-Bereiche und Erstellen eines ActionLink mit ID (SEO/saubere URL)
In meiner Globabl.asax Seite habe ich einige Routen als solche definiert:
public static void RegisterRoutes(RouteCollection routes)
{
// Routing config for the HelpDesk area
routes.CreateArea("HelpDesk", "ProjectName.Areas.HelpDesk.Controllers",
routes.MapRoute(null, "HelpDesk/{controller}/{action}", new { controller = "Ticket", action = "Index" }),
routes.MapRoute(null, "HelpDesk/Ticket/Details/{TicketId}", new { controller = "Ticket", action = "Details", TicketId = "TicketId" })
);
}
Also, wenn ich „http://localhost/HelpDesk/Ticket/Details/12“ in der Browser-Adressleiste manuell eingeben, erhalte ich die Ergebnisse erwarte ich. Hier ist mein Controller:
public ActionResult Details(int TicketId)
{
hd_Ticket ticket = ticketRepository.GetTicket(TicketId);
if (ticket == null)
return View("NotFound");
else
return View(ticket);
}
Aus meiner Sicht habe ich:
<%= Html.ActionLink(item.Subject, "Details", new { item.TicketId })%>
Aber das Code generiert "http://localhost/HelpDesk/Ticket/Details?TicketId=12", die auch die erwarteten Ergebnisse. Meine Frage ist ...
Wie definiere ich einen ActionLink bei der Verwendung von Steven Sanderson Areas, die eine saubere URL wie erstellen wird: "http://localhost/HelpDesk/Ticket/Details/12"?
Womp ... da ist es! Du hast Recht. Es war der Befehl! – robnardo