我正在使用Knockout使用ASP.NET MVC SPA,我注意到Visual Studio生成的示例代码将javascript代码中API的URL硬编码为“/ api / ...” 。显然,只有当应用程序在Web服务器上以“/”为根时才有效。我原以为框架中可能会有一些东西来处理这个问题,但我找不到它。
目前我只是在我的_Layout.cshtml中添加以下内容来创建一个全局javascript变量:
var ApplicationPath = '@HttpContext.Current.Request.ApplicationPath';
但是,考虑到这应该是一种最先进的设计范式,它似乎有点笨拙并且打破了关注点的分离。有更好的方法吗?
我过去一直使用相对URL(使用网络表单),但在我看来,这在MVC中是一个坏主意,因为你可以通过/ myApp,/ myApp / Home或/ myApp获取同一页面/家庭/索引。