Rey21 Ответов: 1

Как показать listview в форме xamarin


Я пытаюсь показать listview с данными json из веб-сервиса, но у меня есть ошибка
var response = await api.getAllUserGoogle();


это ошибка сообщения :
Response status code does not indicate success: 500 (Internal Server Error)


Это мои данные json от webservice
{"isSuccess":true,"resultMessage":"","data":
[{"password":"MnwPzyBdAZBrDV6xMHoIzg","userid":138,"email":"gusssion@gmail.com","username":"gussion"},{"password":"PFjQJkorLvR+ilWUWdq1Yw","userid":98,"email":"vania@gmail.com","username":"vania"},{"password":"LRmayI3ClJtVWijRyhR3Fg","userid":106,"email":"yuli@gmail.com","username":"yuli"}]}


Это мое кодирование:

ApiInterface.в CS
interface ApiInterface
    {
        [Post("/getAllUser")]
        Task<Data_ReturnResult> getAllUser();
    }


Data_ReturnResult
[Serializable]
    public class Data_ReturnResult
    {
        public Boolean isSuccess;
        public String resultMessage;
        public object data;

        public static Data_ReturnResult createReturnResult(Boolean isSuccess, String resultMessage, object data = null)
        {
            Data_ReturnResult result = new Data_ReturnResult();
            result.isSuccess = isSuccess;
            result.resultMessage = resultMessage;
            result.data = data;
            return result;
        }
        public static String createReturnResultInJson(Boolean isSuccess, String resultMessage, object data = null)
        {
            Data_ReturnResult result = createReturnResult(isSuccess, resultMessage, data);
            return JsonConvert.SerializeObject(result);
        }
    }


MainPage.xml
<StackLayout>

    <ListView
        x:Name="MyListView">
        <ListView.ItemTemplate>
            <DataTemplate>
                <TextCell Text="{Binding Username}" TextColor="Black"/>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

</StackLayout>


Файл MainPage.язык XAML.в CS
public partial class MainPage : ContentPage
    {

        private ApiInterface api;
        public List<User> users { get; set; }
        
        public class User
        {
            String password;
            String userId;
            String email;
            String username;

            public string Password { get => password; set => password = value; }

            public string UserId { get => userId; set => userId = value; }

            public string Email { get => email; set => email = value; }

            public string Username { get => username; set => username = value; }
        }

        public MainPage()
        {
            InitializeComponent();

            api = RestService.For<ApiInterface>("http://192.168.0.185/webservice/webservice.asmx");
            _ = CallApi();
        }

        async Task CallApi()
        {
            var response = await api.getAllUsers();
            MyListView.ItemsSource = response.ToString();

        }

    }


Веб-сервис
[WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public void getAllUsers()
        {
            DbAccessConnection conn = getActiveConnection();

            if (conn == null)
                return;

            try
            {
                beginTransaction(conn);
                
                User users = new User(conn);
                DataSet ds = new DataSet();
                string tbName = "User";

                users.getAll(ds, tbName);
                DataTable dtTbl = ds.Tables[tbName];

                List<Dictionary<String, object>> lsOfDtTbl = Tools.convertDataTableToList(dtTbl);

                Responder.writeResponse(true, "", lsOfDtTbl );
                commitTransaction(conn);
            }
            catch (Exception ex)
            {
                rollbackTransaction(conn);
                Responder.writeResponse(false, ex.Message);
            }
        }


Что я уже пробовал:

Не могли бы вы помочь мне, как это исправить ?

1 Ответов

Рейтинг:
2

Cahyo DWC

MyListView.ItemsSource
должно быть, это Ан
IEnumerable<T>
вместо
string


Rey21

но у меня есть проблема с сообщением 500(Внутренняя ошибка сервера), и если я запускаю свой веб-сервис, то это успех выполнения метода getAllUsers. Не могли бы вы мне помочь ?

Cahyo DWC

500(Внутренняя ошибка сервера) пришел из вашего бэкэнда, убедитесь, что код на вашем бэкэнд-сервере правильный и работает без ошибок