88 messaggi dal 18 aprile 2018
Allora, in parallelo a questa richiesta che mi hanno fatto sto lavorando a un applicazione che poi sarà usata in xamarin e quindi ho fatto un app core mvc che gestisce gli utenti ecc.. ecc..
Da qui ho iniziato a ragionare di dividere le cose.
Tornando all'applicazione incriminata, non sarà solo una pagina a dover usare quell Api ma saranno
6 o 7 che probabilmente saranno tutte nello stesso progetto MVC.
Modificato da Mirko2018 il 07 febbraio 2019 22:16 -
Modificato da Mirko2018 il 07 febbraio 2019 22:19 -
333 messaggi dal 05 novembre 2012
se hai un applicativo mvc ed uno xamarin che consumano la stessa webapi ok.

Ma perchè non hai fatto un unica solution con i due progetti e tieni aperto due visual studio?

Tornando al problema, devi scomporre il tuo problema ed andare per gradi...dimenticati per ora l'applicativo mvc, lo guarderai in un secondo momento, inizia a testare solo la web api, per es. con postman (lo conosci?)

Ciao

Alessio
88 messaggi dal 18 aprile 2018
Si lo ho usato per il core mvc.. ok domani testo con Postman e ti dico.. Potrebbe dipendere dal front end?
333 messaggi dal 05 novembre 2012
Ci vorrebbe la sfera di cristallo per darti una risposta :-)

Potrebbe, inizia a testare solo la api e procedi per esclusione...

Ciao

Alessio
88 messaggi dal 18 aprile 2018
Ciao Alessio,
ho fatto i test con postman, e il risultato è stato buono. Ed è proceduto tutto normalmente, senza errori ne "sfarfallii". Il problema potrebbe quindi stare nella richiesta che faccio.. ti posto il codice:

la richiesta viene inviata con ajax al controller MVC così:

$.ajax({
        url: '/Home/Index',
        type: 'POST',
        data: JSON.stringify(Model), // This is all you have to change
        contentType: "application/json",
        cache: false,//
        success: function (dat) {
            if (dat.status === true) {
                OpenModalOk();


            } else {
                $('#esito').html('<b>' + dat.Message + '</b>');
                OpenModalFalse(dat.Message);
                console.log(dat.Message);
            }
        },
        error: function (dat) {
            console.log(dat.Message);

        }
    });


Premetto una cosa, la pagina ho fatto si che si possa tradurre dall'italiano all'inglese tutto con jquery, ma ci sono campi differenti tra la versione IT e quella EN, di conseguenza il codice sopra è ripetuto due volte nello stesso JS,( sia per la versione italiana e che per quella inglese. ). Potrebbe dipendere da questo? alla fine se cè la lingua it ne usa 1 altrimenti usa l'altro immagino...

poi il controller è questo:


  [HttpPost]
        public async Task<ActionResult> Index(CustomerSettingsViewModel Model)
        {

             .....
            //dopo una serie di controlli l'invio al CORE 

 var requestor = new CustomerSettingsViewModel();
            requestor.CustomerData = Model.CustomerData;
            requestor.Setting = Set;

            JsonSerializerSettings settings = new JsonSerializerSettings();
            settings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            var myJson = JsonConvert.SerializeObject(requestor, settings);

            //   var myJson = JsonConvert.SerializeObject(CustomerData);

            var httpContent = new StringContent(myJson, Encoding.UTF8, "application/json");

            using (var httpClient = new HttpClient())
            {

                // Do the actual request and await the response
                var httpResponse = await httpClient.PostAsync("https://localhost:44358/api/Subscription/InsertFromWeb", httpContent);

                if (httpResponse.Content != null)
                {
                    var responseContent = await httpResponse.Content.ReadAsStringAsync();




[Aggiornamento]

Ho messo in debug anche il JS e ho tolto la chiamata dalla versione in inglese..
sembra comunque che partono 2 chiamate... e da li si inceppa. come è possibile?
Grazie in anticipo
Modificato da Mirko2018 il 08 febbraio 2019 15:32 -
333 messaggi dal 05 novembre 2012
Ciao,

nel codice che hai postato non vedo nulla che può essere legato al problema in questione.

Mi è un po oscura questa tua gestione della lingua

di conseguenza il codice sopra è ripetuto due volte nello stesso JS

Cosa significa è ripetuto due volte? In che modo?

Ho messo in debug anche il JS e ho tolto la chiamata dalla versione in inglese

Piuttosto, per fare un test, prova a commentare tutto il codice che riguarda la localizzazione inglese

A livello generale, non serve duplicare pagine e/o javascript per gestire diverse lingue...puoi utilizzare i file di localizzazione, qui trovi un'interessante lettura Internazionalizzazione delle applicazioni in ASP.NET MVC di Moreno Gentili

Ciao

Alessio
88 messaggi dal 18 aprile 2018
Mi spiego meglio, la pagina sarà inserita in un pc o tablet e sara esposta presso un negozio o diversi negozi, i clienti devono poter visionare la pagina sia in IT che in EN.

Per avere un pagina veloce e fluida ho inserito i testi tramite jquery, un input type hidden in cui scrivo ogni volta che avviene lo switch la lingua che sto utilizzando.
Quindi non ci sono controlli sulla localizzazione.

comunque adesso sembra funzionare, ho fatto questa modifica sul pulsante submit, ho sostituito questo:


$("#submitEN").click(function () {
$("#submitIT").click(function () {



con

 $("#submitEN").off().on('click', function () {

 $("#submitIT").off().on('click', function () {


anche se mi sa di toppa.. ora purtroppo ho tempi stretti per il rilascio, faccio qualche altro test per conferma, e poi vedrò di implementare la lingua con il sistema che mi hai indicato. Ti faccio sapere come va.
333 messaggi dal 05 novembre 2012
Di buono c'è che hai capito da dove nasce il tuo problema ma in quello che mi descrivi ci sono molte cose oscure e poco chiare, ancor di più quello che non hai descritto :-)
Di conseguenza non capisco come la tua modifica possa aver messo una toppa.

Fai attenzione a javascript, è un attimo fare porcate e trovarsi in situazioni poco chiare e ingestibili, questo è solo uno dei tanti casi.

Va bene i tempi stretti per il rilascio, ma prima di andare in produzione con qualcosa bisogna essere tranquilli per non dover far fronte a problemi ben più grossi dopo

Ciao

Alessio

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.