簡體   English   中英

我的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 }
        );


    }

我的類稱為LogInController,位於Controllers目錄中: 項目結構

我已經將LogInController類設置為: LogInController結構

這是我在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的控制器沒有任何操作。 同樣,$ .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操作的一個很好的示例: 如何將json POST數據作為對象傳遞給Web API方法

此外,如果您尚未使用Fiddler,則可以在解決這些問題上提供很大的幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM