【问题标题】:Description: HTTP 404 for JSON return说明:用于 JSON 返回的 HTTP 404
【发布时间】:2016-11-19 09:06:06
【问题描述】:

我对 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)完美运行。但第二部分(登录)仅适用于“邮递员”chrome 应用程序。
我在“邮递员”上发布了一个请求-

localhost/dashboard/login?username=php&password=php

我看到了一个 json:

{ “用户 ID”:29, "用户名": "php", “IsAdmin”:假, “消息”:“好的” }

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

“/”应用程序中的服务器错误。

找不到资源。

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

请求的 URL:/dashboard/login

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

【问题讨论】:

  • 您能否澄清一下 “在 localhost 和 wwwroot (iis) 中没有机会”是什么意思??您是否尝试从网络浏览器访问该 url,但没有成功?
  • 好吧,他找不到您指定的 URL。您确定要在仪表板前添加一个斜线吗?你是从根文件夹开始的吗?
  • 我认为 url 没有任何问题,因为正如我所说,我在“Postman”中传递了 url,并得到了我想要的 json。
  • @botond.botos 是的,我在网络浏览器中输入了网址,但发生了错误。相同的网址在“邮递员”中有效。
  • @PedramHassas,当您将 URL 输入到 Web 浏览器时,它会发出 GET 请求,但您的控制器需要 POST。

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


【解决方案1】:

当您在网络浏览器中输入 http://localhost/dashboard/login?username=php&password=php url 时,它会发出一个 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-10
    • 2022-11-11
    • 2013-04-30
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    相关资源
    最近更新 更多