Как построить метод [HttpPost] в веб-API для класса объекта? (Xamarin.form + веб-API) (обновление 1) - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь сделать, чтобы xamarin.form до зарегистрировать учетную запись администратора в веб-API объединить с предопределенным значением, введя значение в мой XAML и зарегистрировать / опубликовать его в веб-API. К сожалению, я все еще новичок в платформе Xamarin.

Я сталкиваюсь с проблемой сделать тело метода [HttpPost] в AdminAccountController.cs для моего объекта класса.

(Обновлено 1)

-Success возвращает ответ в Postman при запросе POST

POSTMAN GET REQUEST ответ (успешно): -

[
    {
        "id": 1,
        "username": "admin1",
        "password": "12345678"
    },
    {
        "id": 2,
        "username": "admin2",
        "password": "12345678"
    }
]

Ответ POSTMAN POST REQUEST (успешно предоставлено @jason): -

{
    "id": 3,
    "username": "admin3",
    "password": "12345678"
}

AdminAccountController.cs (Обновлено)

using FoodWebApi.Models;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
namespace FoodWebApi.Controllers
{
    public class AdminAccountController : ApiController
    {
        List<Admin> admins = new List<Admin>()
        {
            new Admin
            {
                id=1,
                username="admin1",
                password="12345678"
            },
            new Admin
            {
                id=2,
                username="admin2",
                password="12345678"
            }
        };
        //http://localhost:53287/api/AdminAccount
        public IEnumerable<Admin> GetAll()
        {
            return admins;
        }
        //http://localhost:53287/api/AdminAccount/1
        public IHttpActionResult GetById(int id)
        {
            var admin = admins.FirstOrDefault(x => x.id == id);
            if (admin == null)
            {
                return NotFound();

            }
            return Ok(admin);
        }
        [HttpPost]
        public Admin PostNewAdmin(Admin admin)
        {
            // add the new admin to your list
            admins.Add(admin);

            // return to the caller
            return admin;
        }
    }
}

Admin.cs

namespace FoodWebApi.Models
{
    public class Admin
    {
        public int id { set; get; }
        public string username { set; get; }
        public string password { set; get; }
    }
}

1 Ответ

0 голосов
/ 11 апреля 2020

сначала используйте список вместо массива, просто проще

    // need this for List
    using System.Collections.Generic;

    ...

    List<Admin> admins = new List<Admin>() 
    {
        new Admin
        {
            id=1,
            username="admin1",
            password="12345678"   
        },
        new Admin
        {
            id=2,
            username="admin2",
            password="12345678"
        }
    };

    [HttpPost]
    public Admin PostNewAdmin(Admin admin)
    {
        // add the new admin to your list
        admins.Add(admin);

        // return to the caller
        return admin;
    }
...