我有一個Web API 2 API控制器獲取URL的路由前綴在Razor視圖的ASP.NET Web API
[RoutePrefix("things")]
public class ThingsController : APIController
{
[Route("{thingId}", Name="Things.Get")]
public Thing Get(string thingId)
{
//snip...
}
}
,一切都很好...除了我想通過網址爲路線到一些JS,以便它可以構建的URL請求Things
所以我已經試過
myJavascriptObject.thingUrl = '@Url.Action("Get", "Things", new {area=""})';
剃刀的看法,但我得到一個空字符串
我試着給控制器路由一個明確的名稱,並使用
@Url.RouteUrl("Things.Get", new {areas="", thingId="foo"}")
b
UT那是一個空字符串了。
我是不是傻了?這應該工作嗎?
更多的嘗試後更新的東西。
在一個MVC控制器(在哪裏,我需要知道的API控制器路線)
var something = Url.Action("Get", "Things", new {area = ""});
var somethingWithId = Url.Action("Get", "Things", new { area = "", siteId = "fakeId" });
var somethingElse = Url.RouteUrl(new {Action = "Get", Controller = "Things", Area = ""});
var somethingElseWithId = Url.RouteUrl(new { Action = "Get", Controller = "Things", Area = "", siteId = "fakeId" });
這些都是空。
如果我刪除area=""
條件,那麼我得到一個路線,但與區域名稱中它和路由沒有在它的區域名稱。
?!