Visual Studio 2010无法访问Web api项目

时间:2012-06-04 11:18:22

标签: asp.net-mvc-4 asp.net-web-api

我已经使用以下项目创建了一个解决方案

FrontEnd是一个mvc4 Web应用程序,MyWebAPI是一个mvc4 webAPI

enter image description here

我希望能够从FrontEnd项目访问MyWebAPI控件方法。但它并不起作用,因为它只是抱怨在我运行webAPI网址时无法找到数据。

我是否必须做更多事情,以便我的FrontEnd可以与MyWebAPI交谈?

例如,我只是尝试运行此预生成的webAPI控件方法

public string Get(int id)
{
    return "value";
}

无法找到。但是,如果我将启动项目更改为MyWebAPI,那么它可以工作。所以我的问题是如何制作它以便我可以从我的FrontEnd项目访问MyWebAPI?

此问题实际上与此one相同,但它没有解释当我们在同一解决方案中时如何从前端访问webAPI

修改

$(document).ready(function() {
            $("#clickMe").click(function() {
                var id = $("#dataBox").val();
                $.ajax({
                    url: "http://localhost:11982/api/Movie/GetMovie",
                    data: { id: id },
                    type: "get",
                    contentType: "application/json;charset=utf-8",
                    success: function(data) {
                        alert(data);
                    },
                    error: function(jqXHR, status, errorThrown) {
//                      alert("Error " + status + "\nError Thrown" + errorThrown + "\n" + jqXHR )

                    }
                })
            })
        })

更新2012-08-30

我在我的解决方案中更新了不同的包,其中包括WebAPI beta到WebAPI rc版本。现在由于某种原因,当我向任何WebAPI控制器发送表单请求或ajax请求时,它将为表单请求响应表明没有找到这样的控制器,并且对于ajax请求,它将永远加载而不返回响应

之前遇到类似问题的人?

之前的解决方案是在本地IIS服务器中运行我的FrontEnd和MyWebAPI。但是,因为我更新了所有软件包,所以它现在停止工作了。

1 个答案:

答案 0 :(得分:2)

似乎你的问题是你需要同时运行FrontEnd& MyWebAPI同时从Visual Studio进行投影。实际上,使用解决方案的一个有点模糊的启动选项来配置Visual Studio是很容易的。

右键单击解决方案资源管理器窗格中的解决方案节点(而不是具有相同名称的项目节点)。从上下文菜单项中,选择“设置启动项目”。在对话框中,单击“多个启动项目”选项,然后选择FrontEnd& MyWebAPI项目。单击“确定”以保存选项。现在,两个项目都应该在运行调试器时启动,MyWebAPI调用将响应FrontEnd。只需确保两个项目都在不同的端口上运行。

<强>更新

Web API RTM发生了重大变化。其中一项更改是用于提取ApiController操作参数的约定。查看新属性FromUriFromBody的使用方式in this SO question and answer