我的模特是
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}都可以使用
答案 0 :(得分:5)
由于两条路线看起来都相同,你可以将它们结合起来并定义一条路线,并在动作中(或onActionExecuting)你可以决定基于行为的ID或URL
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{Segment}",
defaults: new { controller = "Home", action = "Index", Segment = UrlParameter.Optional }
);
或者您可以仅使用ID映射路径,并将URL作为查询字符串。