描述:用于JSON返回的HTTP 404

时间:2016-11-19 09:06:06

标签: c# json asp.net-mvc rest

我对编程c#和asp.net有点新手,我只是想为我的Android应用程序构建一个rest api来登录并注册。但我遇到登录问题(登录) 问题是我刚刚在下面写了这些代码:

namespace CPanel.Controllers
{
    public class DashboardController : Controller
    {
        // GET: Dashboard
        public ActionResult CreateUser()
        {
            return View();
        }

        [HttpPost]
        public ActionResult CreateUser(string username,string password)
        {
            CPanel.Models.CPanelEntities1 db = new Models.CPanelEntities1();
            db.USP_AddUSer(username, password);
            return View();
        }


        [HttpPost]
        public ActionResult login(string username,string password)
        {
            CPanel.Models.CPanelEntities1 db = new Models.CPanelEntities1();
            try
            {
                var user = db.USP_Authenticate(username, password).First();
                return Json(new { UserId = user.UserId,Username=user.Username,IsAdmin=user.IsAdmin,Message="ok"});
            }catch(Exception)
            {
                return Json(new { message = "error" });
            }
        }
    }
}

第一部分(CreateUser)完美运行。但第二部分(登录)仅适用于" Postman"铬应用。
我在" Postman"上发布请求 -

  

本地主机/仪表板/登录用户名= PHP&安培;密码= PHP

我看到一个json:

  

{    " UserId":29,    "用户名":" php",    " IsAdmin":false,    "消息":"确定"   }

在localhost和wwwroot(iis)中没有机会,我面临这个错误:

  

' /'中的服务器错误应用

     

无法找到资源。

     

描述:HTTP 404.您正在寻找的资源(或其中一个   依赖项)可能已被删除,其名称已更改,或者是   暂时不可用。请查看以下网址并制作   确保它拼写正确。

     

请求的网址:/ dashboard / login

     

版本信息:Microsoft .NET Framework版本:4.0.30319;   ASP.NET版本:4.6.1586.0

1 个答案:

答案 0 :(得分:2)

当您向网络浏览器输入http://localhost/dashboard/login?username=php&password=php网址时,它会发出GET请求,但您的控制器只接受POST请求。

还有另外一件事,据我所知你需要一个web api,但你的例子是一个标准的ASP.NET MVC控制器。您可能需要查看以下教程:https://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api