使用 Visual Studio 2012 及其 ASP.NET 开发服务器,对于我第一次涉足 ASP.NET,一切似乎都运行良好。我的 Web API 调用使用 jquery 返回的数据。在部署到 IIS Express 7.5 以开始学习身份验证/授权时,我在 getJSON 调用中遇到了障碍:
GET http://localhost/api/OSList 404 (Not Found)
WebApiConfig
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
获取JSON
$.getJSON("/api/OSList", null)
.success(
function(data) {
var mappedOs = $.map(data, function(item) {
return new Os(item.ID, item.Name, item.PatchLevel);
});
self.OSs(mappedOs);
}
);
这一切都在开发服务器上工作......是我在 IIS 中没有正确设置的东西会阻止这个吗?
编辑:添加了控制器代码,这对我来说是一个明显的失误。这是默认开发工作室自动生成的。
public class OSListController : ApiController
{
private readonly TrendDataEntities _db = new TrendDataEntities();
// GET api/OSList
public IEnumerable<OS> GetOS()
{
return _db.OS.AsEnumerable();
}
}
HomeController 使用:
public ActionResult OSList()
{
ViewBag.Title = "OS List";
ViewBag.Message = "";
return View("~/Views/Home/Admin/OSList.cshtml");
}