Asp.net mvc ASP.net MVC区域并创建ID为(SEO/clean URL)的ActionLink

Asp.net mvc ASP.net MVC区域并创建ID为(SEO/clean URL)的ActionLink,asp.net-mvc,asp.net-mvc-routing,Asp.net Mvc,Asp.net Mvc Routing,我正在使用ASP.NET MVC 1.0/C#为客户构建一个帮助台记录系统。我已经实现了Steven Sanderson的“”,而且效果很好 在我的Globabl.asax页面中,我定义了一些路由: public static void RegisterRoutes(RouteCollection routes) { // Routing config for the HelpDesk area routes.CreateArea("HelpDesk", "ProjectName

我正在使用ASP.NET MVC 1.0/C#为客户构建一个帮助台记录系统。我已经实现了Steven Sanderson的“”,而且效果很好

在我的Globabl.asax页面中,我定义了一些路由:

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" })
    );
}
因此,如果我在浏览器地址栏中手动输入“”,就会得到预期的结果。这是我的控制器:

public ActionResult Details(int TicketId)
{
    hd_Ticket ticket = ticketRepository.GetTicket(TicketId);
    if (ticket == null)
        return View("NotFound");
    else
        return View(ticket);
}
我认为:

<%= Html.ActionLink(item.Subject, "Details", new { item.TicketId } )%>

但该代码生成“”并返回预期结果。我的问题是

当使用Steven Sanderson的创建一个干净的URL时,我如何定义ActionLink,如:“?”

试试看

<%= Html.ActionLink(item.Subject, "Details", new { TicketId=item.TicketId } )%>

试试看


试试看


ActionLink方法需要一个字典,其中的键与参数名匹配。(请注意,传递匿名对象很方便)。我相信其他任何东西都会标记到URL的末尾

编辑:这不适用于您的原因是您的第一条路由匹配并优先(控制器和操作),但未定义TicketId参数。您需要切换路线的顺序。你应该总是把最具体的路线放在第一位。

试试看


ActionLink方法需要一个字典,其中的键与参数名匹配。(请注意,传递匿名对象很方便)。我相信其他任何东西都会标记到URL的末尾


编辑:这不适用于您的原因是您的第一条路由匹配并优先(控制器和操作),但未定义TicketId参数。您需要切换路线的顺序。你应该总是把最具体的路线放在第一位。

我认为Womp已经做到了

哦,当你交换路线时,试试看

routes.MapRoute(null, "HelpDesk/Ticket/Details/{TicketId}", new { controller = "Ticket", action = "Details"})
我认为,
TicketId=“id”
把事情搞砸了

希望有帮助


我想沃姆普有

哦,当你交换路线时,试试看

routes.MapRoute(null, "HelpDesk/Ticket/Details/{TicketId}", new { controller = "Ticket", action = "Details"})
我认为,
TicketId=“id”
把事情搞砸了

希望有帮助