c# - 如何注册一个允许路径中有一个点的路由?

标签 c# asp.net-mvc-4 asp.net-mvc-routing

我想实现一个允许 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/

相关文章:

c# - 以编程方式将程序注册到添加/删除程序中并将文件存储在可执行文件中

c# - 在 MVC3 中处理创建和更新复杂数据类型的最佳方法是什么?

c# - 运行时错误 : Could not load file or assembly 'System. Web.WebPages.Razor,版本=3.0.0.0

c# - MVC4 可扩展插件架构

asp.net-mvc - Razor v2 中的条件属性

asp.net-mvc - ASP.NET MVC 4 Web API 无法映射包含字符串 "con"的路径?

c# - 按类的字符串字段对列表进行排序

jquery - jSignature 在 ASP.NET Web 窗体中工作,但在 MVC4 中不起作用 - 为什么?

asp.net - ASP MVC 路由 - 如何更改默认 id 参数的名称,同时保持默认路由不变

asp.net-mvc - MVC 2.0 路由问题 - 无法识别 Url 参数