加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – WebAPI控制器中的MVC路由

发布时间:2020-12-16 03:43:11 所属栏目:asp.Net 来源:网络整理
导读:关于MVC和WebAPI中的路由的快速问题.我添加了路由config.cs的路由: routes.MapRoute( name: "ConfirmEmail",url: "ConfirmEmail/{userid}",defaults: new { controller = "Email",action = "ConfirmEmail" } ); 这是按照正常情况在global.asax中注册的: Ro
关于MVC和WebAPI中的路由的快速问题.我添加了路由config.cs的路由:

routes.MapRoute(
            name: "ConfirmEmail",url: "ConfirmEmail/{userid}",defaults: new { controller = "Email",action = "ConfirmEmail" }
        );

这是按照正常情况在global.asax中注册的:

RouteConfig.RegisterRoutes(RouteTable.Routes);

我正在尝试生成一个URL,以便在电子邮件中使用,该电子邮件是作为WebAPI控制器函数中的函数调用的一部分发送的.我正在使用UrlHelper.Link函数尝试生成一个URL,但是我收到一条错误,说明无法通过名称找到该路由:

var url = Url.Link("ConfirmEmail",new { userid = "someUserId" });

现在我的印象是路由字典在MVC和WebAPI控制器上下文中共享但是我看不到传入Web API调用的路由字典中的MVC路由(在Request对象上),但是我已经定义了WebAPI路由.

我错过了什么吗?

解决方法

MVC和Web API的路由表完全不同.虽然语法看起来类似,但它们操作的路由表是不同的.

但是,MVC使用静态对象进行配置,因此您可以使用System.Web.Routing.RouteTable.Routes从API控制器中访问全局MVC路由表.

但是,这不允许您使用Url.Link,因此我建议您在路由注册中使用常量来表示格式.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读