1

Visual Studio 2012 とその ASP.NET 開発サーバーを使用すると、ASP.NET への最初の進出ですべてがうまく機能しているように見えました。jquery を使用して Web API を呼び出すと、データが返されました。認証/承認の学習を開始するために 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 }
);

getJSON

$.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で正しく設定していないものですか?

編集:コントローラーコードを追加しました。これは私の明らかなミスでした。これはデフォルトの dev studio が自動生成したものです。

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");
}
4

1 に答える 1