我可以在URL /端口中链接到没有硬编码的服务

时间:2015-07-29 21:28:41

标签: c# ajax asp.net-mvc asp.net-web-api

问题:我是否可以通过网络客户端访问我服务的控制器,而无需硬编码URL /端口进行服务。

信息:

  • 在localhost端口上运行的web api服务
  • 在localhost上运行的Web客户端(mvc,razor),不同的端口
  • 启用CORS
  • 代码有效,但我不想要硬编码网址

从客户端到服务的AJAX调用示例:

$.ajax({
        url: "http://localhost:12345/api/ModifySystems",
        type: "post",
        xhrFields: {
            withCredentials: true
        },
        datatype: "json",
        data: ko.toJSON({ systems: self.updatedSystem, id: self.id }),
        contentType: "application/json",
        success: function (result) { 
           // do stuff
        },
        error: function (request, status, error) {   
           // do stuff
        }
    });

如您所见,此AJAX调用使用url:

  

http://localhost:12345/api/ModifySystems

有没有办法改变它以动态地确定" http://localhost:12345"?有没有办法让它变得方便,类似于" @ Url.Action(" ModifySystems")"?

1 个答案:

答案 0 :(得分:1)

您可以将服务的根URL存储在配置文件中,然后将其添加到视图的Model对象中并输出如下:

$.ajax({
    url: "@Model.RootServiceUrl" + "/api/ModifySystems",
    type: "post",
    ....