始终使用
Url.Action或
Url.RouteUrlhtml
helper方法来构建操作方法的url。无论您当前的页面/路径如何,它都会正确构建网址。
假设您的js代码在razor视图中,则可以直接使用
Url.Action方法并将其分配给js变量。
url: "@Url.Action("gravacookie","entidades")",假设您有这样的操作方法,它应该可以工作
[HttpPost]public ActionResult gravacookie(string id,string detalhe){ // to do : Return something}如果您的Javascript位于单独的javascript文件中,则可以使用上述帮助方法在razor视图中构建url,并将其保存在您的外部js文件代码可以访问的变量中。
一定要确保使用javascript名称空间,以避免全局javascript变量可能出现的问题 。
@section scripts{ <script> var myApp = myApp || {}; myApp.Urls = myApp.Urls || {}; myApp.Urls.baseUrl = '@Url.Content("~")'; myApp.Urls.gravacookieUrl = '@Url.Action("gravacookie","entidades")'; </script> <script src="~/scripts/PageSpecificExternalJsFile.js"></script>}在
PageSpecificExternalJsFile.js文件中,您可以像
var urlToGrava= myApp.Urls.gravacookieUrl// Or With the base url, you may safely add the remaining url route.var urlToGrava2= myApp.Urls.baseUrl+"entidades/gravacookie";// Use urlToGrava now
编辑
如果您只关心站点的根/基URL,则可以简单地
/用作URL的第一个字符。
var urlToGrava2= "/entidades/gravacookie";



