asp.net - 如何从 ApiController 创建 MVC 操作的 url?

标签 asp.net asp.net-mvc-4 asp.net-web-api

有没有办法从 ApiController 创建一个喜欢 MVC 操作的 url?我看到了以相反的方式执行此操作的示例,即使用 MVC 的 UrlHelper ( http://blogs.msdn.com/b/roncain/archive/2012/07/17/using-the-asp-net-web-api-urlhelper.aspx ) 从 MVC 访问 ApiController。

任何帮助将不胜感激。谢谢。

最佳答案

您可以使用 API Controller 上的 Url 属性来查找 Web api 或 MVC Controller 的路由。以下是创建指向默认项目模板 MVC 方法 AccountController.Login(string returnURL) 的链接的示例。

    public class SOExampleController : ApiController
{

    public SOExample GetSOExample()
    {
        var url = Url.Route("Default", new {controller = "Account", action = "Login", returnUrl = "hello"});
        return new SOExample{URL = url};
    }
}

public class SOExample
{
    public string URL {get;set;}
}

运行时,您将获得“/Account/Login?returnUrl=hello”的 url 值。看来您可能需要在域名前面添加域名,这应该很容易找到。

关于asp.net - 如何从 ApiController 创建 MVC 操作的 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14991184/

相关文章:

asp.net - 如何迭代DataTable中给定行中的所有项目

c# - 处理将操作参数绑定(bind)到不正确类型的路由值的错误

c# - 1. 路由参数中的正斜杠

asp.net-mvc - 无法从区域返回局部 View

c# - 如何从Web API接收这个Json?

entity-framework - net core odata put和patch嵌套数据结构

c# - 选择没有特定类的 jQuery First Child

asp.net - 如何将 '<' 和 '>' 放在链接按钮文本属性(asp.net)中?

asp.net - 在 Application_BeginRequest 中设置 session 变量

c# - Ws-Federation 身份信息在 Web API 中不可用?