我想实现一个允许 url 中的点的路由系统。目前我处理这样的网址:
我的域/用户/详细信息/raguilar
但如果用户名有一个点,则生成为:
mydomain/User/Details?username=r.aguilar
我尝试添加以下路由:
routes.MapRoute(
name: "Users",
url: "User/{action}/{username}",
defaults: new { controller = "User", username = UrlParameter.Optional },
constraints: new { username = @"\w+\.?\w+" }
);
一切似乎都很好,但是当我点击 url 时,我收到一个错误,提示找不到相关资源或类似的错误。
有什么办法可以解决这个问题吗?
最佳答案
为了解决这个问题,我应该在 system.webServer/handlers 元素中添加以下行:
<add name="ApiURIs-ISAPI-Integrated-4.0"
path="/user/*"
verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS"
type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />
user 是包含点的路径所属的 Controller 。
关于c# - 如何注册一个允许路径中有一个点的路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22332330/