Javascript 无法连接到Web API
我是WebAPI编程新手。以下是我所做的Javascript 无法连接到Web API,javascript,c#,asp.net,asp.net-mvc-4,asp.net-web-api,Javascript,C#,Asp.net,Asp.net Mvc 4,Asp.net Web Api,我是WebAPI编程新手。以下是我所做的 在Visual Studio 2013中创建ASP.NET web应用程序SampleWebApiProject 在.NET Framework 4.5.2下 选择MVC,并在[Add Folders and core Reference for]下选中Web API 使用Nuget软件包安装knockout.js、knockout-validation.js等 在我的Login.cshtml代码中,我有一个html按钮 登录 在我的点击按钮上我有
SampleWebApiProject
在.NET Framework 4.5.2下
MVC
,并在[Add Folders and core Reference for]下选中Web API
登录
在我的点击按钮上我有
self.viewModelHelper.apiPost('api/account/login',unappedmodel,
功能(结果){
}
我已经创建了名为AccountApiController
公共类AccountApicController:ApicController
{
[HttpPost]
[发布(“api/账户/登录”)]
公共HttpResponseMessage登录(HttpRequestMessage请求,[FromBody]AccountLoginModel accountModel)
{
返回null;
}
}
然而,当我在ChromeDeveloperTools中检查单击事件时,我得到了一个错误响应
POSThttp://localhost:64436/api/account/login 404(未找到)
这是我的网页
我是否使用正确类型的应用程序
屏幕截图
试试:
self.viewModelHelper.apiPost('api/accountapi/login', unmappedModel,
function (result) {
}
和API控制器
public class AccountApiController : ApiController
{
[HttpPost]
[POST("api/accountapi/login")]
public HttpResponseMessage Login(HttpRequestMessage request, [FromBody]AccountLoginModel accountModel)
{
return null;
}
}
您的帐户控制器名为accountapi而不是account,因此webapi找不到任何名为account的控制器。webapi在MVC体系结构中有严格的调用 如果您调用POST,这意味着API将真正创建一个新实体,而不会发出其他要返回的请求 也就是说,WebAPI不是您认为可能是的自定义API函数调用 它不同于在MVC应用程序中创建单个API和web API 这是一些注释
- 获取:检索实体
- PUT:更新实体
- POST:创建新实体
- 删除:删除现有实体
api/account/login我不确定,但您的webapi控制器中的参数看起来有误
为什么要添加HttpRequestMessage作为参数?您已经调用了控制器
AccountApicController
,因此api/account/login
应该是accountapi/login
public class AccountApiController : ApiController
{
[HttpPost]
[POST("api/accountapi/login")]
public HttpResponseMessage Login(HttpRequestMessage request, [FromBody]AccountLoginModel accountModel)
{
return null;
}
}
[HttpGet]
public IEnumerable<string> Get()
{
return "No Value";
}
[HttpGet("{id}")]
public IEnumerable<string> Get(int id)
{
return "There is a value";
}