我正在努力做一些事情,我相信,事情会变得容易。我有一个带有自定义路由名称的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路线。
答案 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
的方法