为了账号安全,请及时绑定邮箱和手机立即绑定

无法实现Post方法操作和消费api?

无法实现Post方法操作和消费api?

C#
慕慕森 2022-11-22 15:32:13

我正在使用 Web API 来调用和实现一个 post 方法来将值插入 MongoDB。值插入失败。数据应该被插入到 MongoDB 中已经创建的数据库中!我是网络 api n MongoDB 的初学者。我需要帮助


我已经编写了将值插入集合“联系人”的代码。使用 API 的代码有效,但执行发布的代码无效。连接建立,但插入id值失败。


**API code**

Contact.cs(模型类)


 public class Contact

    {

        [BsonId]

        public string Id { get; set; }

        public string Name { get; set; }

        public string Address { get; set; }

        public string Email { get; set; }

        public string Phone { get; set; }

    }

MongoDbController(控制器)


public class MongoDbController : ApiController

    {

        readonly MongoDatabase mongoDatabase;


        public MongoDbController()

        {

            mongoDatabase = RetreiveMongohqDb();

        }


        private MongoDatabase RetreiveMongohqDb()

        {            

            MongoClient client = new MongoClient("mongodb://localhost:27017");

            MongoServer server = client.GetServer();

            return server.GetDatabase("mydb");

        }


    [System.Web.Http.HttpPost]

        public Contact Save(Contact contact)

        {

            var contactsList = mongoDatabase.GetCollection("contact");

            WriteConcernResult result;

            bool hasError = false;


            if (string.IsNullOrEmpty(contact.Id))

            {

               contact.Id = ObjectId.GenerateNewId().ToString();

                result = contactsList.Insert<Contact>(contact);

                contactsList.Save(contact);              

                hasError = result.HasLastErrorMessage;

            }


            if (!hasError)

            {

                return contact;

            }

            else

            {

                throw new HttpResponseException(HttpStatusCode.InternalServerError);

            }

        }

**Consuming API**

Contact.cs(模型类)


 public class Contact

    {

        [BsonId]

        public string Id { get; set; }

        public string Name { get; set; }

        public string Address { get; set; }

        public string Email { get; set; }

        public string Phone { get; set; }

    }


查看完整描述

1 回答

?
芜湖不芜

TA贡献1509条经验 获得超7个赞

client.BaseAddress = new Uri("http://localhost:61093/api/MongoDb/save")



查看完整回答
反对 回复 6天前
  • 1 回答
  • 0 关注
  • 5 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信