Asp.Net WebApi路由在DefaultWebSite下发布并与WebSite分开

时间:2017-11-22 12:46:43

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

从Asp.Net MVC UI(View)我通过Ajax Call调用Asp.Net WebApi。

$.ajax({
    type: "POST",
    contentType: "application/json",
    url: "api/UpdateEmployees",
    data: undefined,
    success:
        function () {
            EmployeesPage();
        },
    error: function (err) {
        Error(err);
    }
});

当我在IIS中将WebSite作为站点发布时,它运行正常。但是如果我在"默认网站"下发布WebSite。它不起作用,因为它期望网址为" EmployeeWebSite / api / UpdateEmployees"其中EmployeeWebSite是我的虚拟目录,位于"默认网站"。

我应该根据WebSite的托管位置添加url。任何人都可以帮我这个吗?我希望我的网站能够在这两种情况下工作。

我正在使用localhost部署两种方式。

1 个答案:

答案 0 :(得分:-1)

在layout.chtml或当前视图中使用此代码

<script type="text/javascript">    
        var baseurl = '@VirtualPathUtility.ToAbsolute("~/")';      
</script>

之后,您可以使用您的基本URL变量

$.ajax({
    type: "POST",
    contentType: "application/json",
    url: baseurl +'api/UpdateEmployees',
    dataType: "json",    
    success:
        function () {
            EmployeesPage();
        },
    error: function (err) {
        Error(err);
    }
});

提示:如果您没有解析任何数据,请不要在您的$ .ajax中放置undefined删除它。 有一个感恩节