gpt4 book ai didi

asp.net-mvc - WebAPI Controller 中的 MVC 路由

转载 作者:行者123 更新时间:2023-12-02 05:12:51 24 4
gpt4 key购买 nike

有关 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 Controller 函数内的函数调用的一部分发送。我正在使用 UrlHelper.Link 函数尝试生成 URL,但是收到一条错误消息,指出无法按名称找到路由:

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

现在我的印象是路由字典在 MVC 和 WebAPI Controller 上下文中共享,但是我无法在传入 Web API 调用的路由字典中看到 MVC 路由(在请求对象上),但是我定义了 WebAPI 路由在那里。

我错过了什么吗?

最佳答案

这是一种更简洁的方法,可以从 WebApi 生成 MVC 路由的链接。我在自定义基础 API Controller 中使用此方法。

protected string MvcRoute(string routeName, object routeValues = null)
{
return new System.Web.Mvc.UrlHelper(System.Web.HttpContext.Current.Request.RequestContext)
.RouteUrl(routeName, routeValues, System.Web.HttpContext.Current.Request.Url.Scheme);

}

关于asp.net-mvc - WebAPI Controller 中的 MVC 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29147486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com