从视图中获取自定义路径名称

时间:2016-10-28 18:20:35

标签: c# asp.net-mvc asp.net-mvc-5

我正在努力做一些事情,我相信,事情会变得容易。我有一个带有自定义路由名称的API服务,我正在尝试从视图中获取自定义路由名称。以下是相关的API代码:

public class ImageController : ApiController
{
    [Route("api/v1/images/Upload/Profile"]
    [HttpPost]
    public IHttpActionResult UploadProfileImage([FromBody] ImageUpload upload)
    {
        // Do some stuff
        // ...

        return Ok();
    }
}

以下是我认为的相关代码:

<!-- My HTML Code -->
<!-- ... -->

@section scripts {
    <script type="text/javascript">
        $(function() {
            $('#fileupload').fileupload({
                dataType: 'json',
                url: 'What do I put here ??'
            });
        });
    </script>
}

我想弄清楚我在url部分放置的内容,使其映射到我的api路线。

2 个答案:

答案 0 :(得分:0)

您可以创建一个扩展方法:

public static string GetRouteName(this Route route)
{
     if(route != null)
          return route.DataToken.GetRouteName();

     throw new Exception("Invalid Route.");
}

public static string GetRouteName(this RouteValueDictionary routeValues) 
{
    if (routeValues == null) {
        return null;
    }

    object routeName = null;
    routeValues.TryGetValue("__RouteName", out routeName);
    return routeName as string;
}

然后你只需在你的Api中调用它。我会直接将数据注入视图或通过您的模型传递。

答案 1 :(得分:0)

我找到了问题的答案。 Mvc包含一个名为HttpRouteUrl

的方法