【问题标题】:How do I generate a webapi url from an MVC view?如何从 MVC 视图生成 Web api url?
【发布时间】:2013-11-08 20:41:40
【问题描述】:

基于How to create ASP.NET Web API Url?

这些以及我尝试过的其他一些组合都不起作用

 <li><a href="@Url.RouteUrl("DefaultApi",new {area=string.Empty,httproute = string.Empty, controller = "corpuserrequest", action="Get"})">CorpUser</a></li>
                        <li><a href="@Url.Action("Get","CorpUserRequest",new {area=string.Empty,httproute ="", controller = "CorpUserRequest", action="Get"})">CorpUser</a></li>

这是我的 api 配置路由表:

//https://stackoverflow.com/questions/11407267/multiple-httppost-method-in-mvc4-web-api-controller
        config.Routes.MapHttpRoute(
            name: "ApiReq",
            routeTemplate: "webapi/{controller}/{action}",
           defaults: null,
           constraints: new { action = "Req" }
        );

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional },
            constraints: new
            {
                id = @"^\d*$",// Only integers 
                action = "^(?![rR]eq)$" //anything except req or Req
            }
        );

为什么路由不起作用? RouteUrl返回空字符串或null,Action返回

<a href="http://localhost:11601/CorpUserRequest/Get">

而不是实际的网址应该是http://localhost:11601/api/CorpUserRequest

【问题讨论】:

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


    【解决方案1】:

    您可以使用以下任一方法生成 Web API 链接:

    1. @Url.HttpRouteUrl("DefaultApi", new {controller = "corpuserrequest"})
    2. @Url.RouteUrl("DefaultApi", new { httproute = true, controller = "corpuserrequest"})

    通常你会使用选项1.,但有时你可能需要使用2.,就像在下面的帖子中一样(这篇文章不一定使用RouteUrl,但想法是在你不需要的地方有一个方便的扩展,比如HttpRouteUrl,在这种情况下是Html.BeginForm,你可以使用httproute=true来表明你确实在尝试生成一个指向Web API路由的url)

    ASP.Net WebApi: Invalid URL generated in BeginForm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-03
      • 1970-01-01
      相关资源
      最近更新 更多