Url Route asp.net

时间:2014-06-02 16:29:11

标签: asp.net

我的模特是

public class Organization
{
    public int ID { get; set; }
    public string Url { get; set; }
}

这是我的routeConfig

    routes.MapRoute(
            "Url",
        "{controller}/{action}/{Url}",
     new { controller = "Organization", action = "PageContent", Url = "" }
       );
        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

有没有办法修复路由,以便Url和ID都能正常工作? 例如......组织/详细信息/ {ID}和...组织/详细信息/ {Url}都可以使用

1 个答案:

答案 0 :(得分:5)

由于两条路线看起来都相同,你可以将它们结合起来并定义一条路线,并在动作中(或onActionExecuting)你可以决定基于行为的ID或URL

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{Segment}",
    defaults: new { controller = "Home", action = "Index", Segment = UrlParameter.Optional }
);

或者您可以仅使用ID映射路径,并将URL作为查询字符串。