这个怎么样:
路线:
routes.MapRoute(
name: "UserEdit",
url: "Edit/{user}",
defaults: new { controller = "User", action = "Edit" },
constraints: new { user = @"[a-z0-9]+" /*Add valid characters here*/ }
);
routes.MapRoute(
name: "UserEditWithIllegalChars",
url: "Edit/",
defaults: new { controller = "User", action = "Edit" }
);
路由只会匹配 /Edit/Mike 和 Edit/?user=bob@whatever.com 等 URL。
生成 URL 也可以。例如
@Html.ActionLink("1", "Edit", "User", new { user = "Mike" }, new { })
@Html.ActionLink("2", "Edit", "User", new { user = "bob@whatever.com" }, new { })
生成与上述相同的 URL
控制器:
public ActionResult Edit(string user)
注意:
1)您需要检查用户是否为空
2) 将有效字符添加到约束中,因为我不知道所有这些字符。