我确信这是一个骗局,但我找不到正确的答案。这很简单。在我的应用程序中的视图(如果重要的是在区域内)我需要在项目的根目录中获取webapi控制器的URL(/ api / settingscontroller)。
如何在视图中获取此网址(通过剃刀),以便将其传递到javascript knockout视图模型中?
现在我有这个:
ko.applyBindings(new UserSettingsViewModel('api/settings/', userId));
将url添加到我所在的位置。我想要这个:
locahost:1234/api/settings/
但我得到了这个:
localhost:1234/settings/api/settings/
网址中的第一个“设置”是我所在的区域。
答案 0 :(得分:7)
@Url.HttpRouteUrl("NameOfRoute", { controller = "Settings" })
或
@Url.RouteUrl("NameOfRoute", { httproute = "httproute", controller = "Settings" })
...对于routeName
参数,我认为使用它可能取决于您是否使用属性路由。我相信MVC5和WebAPI2附带的属性路由要求您的WebAPI属性路由被命名,以便能够使用UrlHelper
生成它们(尽管它不要求您的MVC路由被命名)。但是,如果您使用的是传统路由,则可以省略第一个参数,而不必为路由命名。
您正在寻找的可能重复项之一可能在此处:How do I generate a webapi url from an MVC view?