我对编程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
答案 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