2
respostas

Dúvida integração Herança no C# com JS

Pessoal, conforme explicado neste post

Link do post

Estou com problemas para ler os dados que está vindo do JS.

Alguém já passou por isso?

Segue o método que faz a leitura das informações que são passados do JS para o C#.

public ActionResult Elaborar(int pPimId, int pPimIdOrigem, int pPimElaboradorId, string pPimEstabelecimentoSigla, string pPimCentroCustoElaboradorId,
            string pPimCentroCustoDestinoId, string pPimPrazo, string pPimResumo, string pPimJustificativa, string pPimPlanejado, int pPimProjetoId,
            int pPimObjetivoId, string pPimTipoId, string pPimOrcamentoDescritivo, string pPimSituacaoId, string pPimAlmoxarifado, int pPimAprovadorUsuarioId,
            string pPimSolicitanteLogin, bool pPimPrivacidade, List<PimItem> pItem, List<Orcamento> pOrcamento) {

            var pim = new intranetRepository.Pim.Model.Pim() {
                Id = pPimId,
                IdOrigem = pPimIdOrigem,
                Elaborador = new Usuario() { Id = pPimElaboradorId },
                Estabelecimento = new Estabelecimento() { Sigla = pPimEstabelecimentoSigla },
                CentroCustoElaborador = new CentroCusto() { Id = pPimCentroCustoElaboradorId },                
                CentroCustoDestino = new CentroCusto() { Id = pPimCentroCustoDestinoId },
                Prazo = pPimPrazo,
                Resumo = pPimResumo,
                Justificativa = pPimJustificativa,
                Planejado = pPimPlanejado,
                Projeto = new intranetRepository.Projeto.Model.Projeto() { Id = pPimProjetoId },
                Objetivo = new Objetivo() { Id = pPimObjetivoId },
                Tipo = new Tipo() { Id = pPimTipoId },
                OrcamentoDescritivo = pPimOrcamentoDescritivo,
                Situacao = new Situacao() { Id = pPimSituacaoId },
                Almoxarifado = pPimAlmoxarifado,
                Aprovador = new Aprovador() { Usuario = new Usuario() {  Id = pPimAprovadorUsuarioId } },
                Solicitante = new Usuario() { Login = pPimSolicitanteLogin },
                Privacidade = pPimPrivacidade,
                PimItem = pItem,
                Orcamento = pOrcamento
            };
            var retorno = new PimRepository().Elaborar(pim);
            return Json(retorno, JsonRequestBehavior.AllowGet);
        }
2 respostas

Opa, Anderson, bom dia. Pelo que entendi no seu post indicado pelo link o problema está associado ao não reconhecimento da propriedade Nome ao instanciar um fornecedor. Mas não estou vendo a criação do fornecedor nesse código que compartilhou.

Qual erro está ocorrendo em sua aplicação AspNet? E em que momento? Coloca aqui essas informações pra gente te ajudar.

Fico no aguardo.

Bom dia Daniel!

Então, o erro ocorre quando tento utilizar a propriedade Nome, que pertence a classe Emitente.

A Classe fornecedor esta herdando a classe Emitente , dentro do C# se eu faço Fornecedor.Nome ele reconhece, pois o Fornecedor recebeu a prioridade Nome da Classe Emitente, então consigo utiliza-la, já no JS se eu tento fazer a mesma coisa ele retorna um erro informando que o objeto não foi instanciado.

Se eu modifico o JS passando a utilizar a estrutura Fornecedor.Emitente.Nome aí o C# recebe a informação e consegue compilar.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software