我的 C# MVC Web 应用 api 的 URI 是什么?

What is my C# MVC Web app api's URI?

我花了一天多的时间试图获取我主页的 jquery,以访问我的 C# ASP.NET MVC 项目中的 api 控制器。

APP_START中的RouteConfig.cs是这样的:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

        routes.MapRoute(
            name: "API Default",
            url: "api/{controller}/{id}",
            defaults: new { id = UrlParameter.Optional }
        );


    }

我的 class 在名为 LogInController 的 Controllers 目录中:

我已将 LogInController class 设置如下:

这是我在 Index.cshtml 上的 jquery:

var apiUrl = "api/LogIn";

-

    $.post(apiUrl,
            {
                userName: 'kamron',
                pwHash: sha256_digest('password')

            },
            function (data, status) {
                try {
                    alert(data, status);
                } catch (e) {
                    alert("System error, please try again.");
                };
            });

$.getJSON(apiUrl)
    .done(function (data) {
        // On success, 'data' contains a list of products.
        $.each(data, function (key, item) {
            // Add a list item for the product.
            alert(key + ':' + item);
        });
    });

我会感激一切。我已经盯着这个看了一天多了,现在想弄清楚我的问题是什么....

任何对我有帮助的额外信息请索取,我已尝试 post 所有相关信息。

非常感谢大家:)

您似乎没有在接受 POST 的控制器上执行任何操作。此外,$.getJSON 调用没有附加任何参数,出于安全原因,您通常不希望通过 GET 请求传递凭据。

向 WebApi 发布多个参数最好通过创建表示参数的模型来实现,即

 public class LogonRequest
 {
      public string Username { get; set; }
      public string Password { get; set; }
 }

然后接受如下所示的模型:

 // POST api/values
 public string Post([FromBody]LogonRequest creds)                          
 {
      //auth code...
 }

可以在此处找到设置 jQuery 调用和 POST 操作的一个很好的示例: How to pass json POST data to Web API method as object

此外,如果您还没有使用 Fiddler,Fiddler 可以很好地帮助您解决这些问题。