【发布时间】:2017-09-25 08:19:27
【问题描述】:
我在我的应用程序中使用了一个 WEB API 控制器,并且我正在使用 ajax 来调用该控制器方法。
网址是:
url: "/api/Informations/" + link.attr("data-id")
这在我的本地机器上完美运行。
问题在于我何时发布。
我必须将 URL 更改为:
url: "ProjectNameOnServer/api/Informations/" + link.attr("data-id")
有解决办法吗?因为如果有任何与此相关的问题,我将不得不不断更改 url 以在我的本地计算机上对其进行测试..然后当问题解决..将其更改回它在服务器上工作的版本。
对此有什么想法吗?
更新
api 路由:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
【问题讨论】:
-
您可以在配置文件中创建常量,其中开发和实时服务器设置将不同。
-
你能举个例子吗?
-
我不知道如何在 asp.net 中进行操作,但像这样:drupal.stackexchange.com/questions/9/…,其中 settings.php 或 config.php 具有所有开发和实时服务器设置。您还可以将此文件添加到忽略(如 gitignore)列表中,以免意外在实时服务器上发送设置。
-
P.S.要回答您的问题 - 大概“api”路线比您的应用程序部署位置低一级?如果是这样,您应该能够使用像
url: "api/Informations/" + link.attr("data-id")这样的相对路径。请注意缺少前导/。这应该使应用程序自包含,并且不知道它在网络服务器的文件夹层次结构中的部署位置。 -
当你使用 EF.. 它会使你的控制器模型复数化.. 因此信息.. 另外这不是我的控制器的真实名称.. 只是一个测试用例
标签: ajax asp.net-mvc asp.net-web-api