【问题标题】:Data not saving in database while implementing WPF Web API实现 WPF Web API 时数据未保存在数据库中
【发布时间】:2021-11-25 06:51:31
【问题描述】:

我正在尝试按照 MVVM 模式通过 ASP.Net Web API 将 WBF 输入中的数据保存到数据库。我已经检查了它也以正确格式接收数据的功能,通过应用断点进行检查。 这是我在 WPF 中的函数:

private async void SubmitExecute ( object parameter )
        {
            HttpClient client = new HttpClient();
            client.BaseAddress = new Uri("http://localhost:60053/Api/");
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(
                new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")
                );
            await client.PostAsJsonAsync("PostSignUp",User);
            WindowsHelper.SignInPage();
        }

我已尝试将断点应用于我的 ASP.Net Post 函数。它没有受到我的 WPF 应用程序的任何影响。但我已经通过我的邮递员应用程序检查过,ASP.net 功能工作正常。我的 ASP.net 函数代码:

 [System.Web.Http.HttpPost]
        public void PostSignUp([Bind(Exclude ="Id")]User user)
        {
            try
            {
                user.Id = Guid.NewGuid();
                db.Users.Add(user);
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                ExceptionLogger.LogException(ex);
            }
            
        }

【问题讨论】:

  • 如果您的 Web 应用程序通过 IIS 运行,您需要 attach to the running IIS process 来调试您的服务器端 API 代码。您是否查看了数据库以查看它是否正在保存任何内容?
  • 是的,我已经检查了数据库。它还没有收到任何数据
  • 你如何调试你的控制器?您的网络服务运行情况如何?
  • 我只是通过点击“开始”来启动它。
  • 在这种情况下,您绝对应该调试控制器,因此我会验证您的 Postman 请求是否与您尝试从代码发送的内容匹配。使用 localhost 时特别容易弄错端口,所以这是一个很好的起点。

标签: c# asp.net wpf rest asp.net-web-api


【解决方案1】:

我更改了发布数据的方式并更正了 URL,它运行良好。

  private async void SubmitExecute ( object parameter )
        {
            HttpClient client = new HttpClient();
            client.BaseAddress = new Uri("http://localhost:60053/Api/InventoryAccess/");
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(
                new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")
                );
            await client.PostAsJsonAsync("PostSignUp?Name="+User.Name+"&Email="+ User.Email+"&Password="+ User.Name,User);
            WindowsHelper.SignInPage();
        }

【讨论】:

    猜你喜欢
    • 2021-05-24
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 2016-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多