none
Erro view RRS feed

  • Pergunta

  • Boa noite, estou programando um service em WCF e MVC 4.(Estou seguindo um programador, o sistema dele deu certo).

    Segue o erro.

    Erro de Servidor no Aplicativo '/'.

    Referência de objeto não definida para uma instância de um objeto.

    Descrição: Ocorreu uma exceção sem tratamento durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código. 

    Detalhes da Exceção: System.NullReferenceException: Referência de objeto não definida para uma instância de um objeto.

    Erro de Origem: 
    Linha 17:                 <th>Ano</th> 
    Linha 18:             </tr>
    Linha 19:             @foreach(var harley in ViewBag.listHarleys)
    Linha 20:             {
    Linha 21:                 <tr>

    Arquivo de Origem: d:\Faculdade\3º Ano\Tópicos avançados em tecnologia\2012\xnxxRestful\xnxxRestfull_Cliente\Views\Harley\Index.cshtml    Linha: 19 

    Rastreamento de Pilha: 
    [NullReferenceException: Referência de objeto não definida para uma instância de um objeto.]
       ASP._Page_Views_Harley_Index_cshtml.Execute() in d:\Faculdade\3º Ano\Tópicos avançados em tecnologia\2012\xnxxRestful\xnxxRestfull_Cliente\Views\Harley\Index.cshtml:19
       System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +196
       System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +127
       System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +76
       System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +257
       System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) +115
       System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +294
       System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +15
       System.Web.Mvc.<>c__DisplayClass1a.<InvokeActionResultWithFilters>b__17() +23
       System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +242
       System.Web.Mvc.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19() +25
       System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +175
       System.Web.Mvc.Async.<>c__DisplayClass2a.<BeginInvokeAction>b__20() +89
       System.Web.Mvc.Async.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult asyncResult) +102
       System.Web.Mvc.Async.WrappedAsyncResult`1.End() +58
       System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +44
       System.Web.Mvc.<>c__DisplayClass1d.<BeginExecuteCore>b__18(IAsyncResult asyncResult) +15
       System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +16
       System.Web.Mvc.Async.WrappedAsyncResult`1.End() +58
       System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +54
       System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +16
       System.Web.Mvc.Async.WrappedAsyncResult`1.End() +58
       System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +44
       System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +12
       System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__3(IAsyncResult asyncResult) +25
       System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +16
       System.Web.Mvc.Async.WrappedAsyncResult`1.End() +58
       System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +44
       System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +11
       System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9765121
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155
    


    Informações sobre a Versão: Microsoft .NET Framework Versão:4.0.30319; Versão do ASP.NET:4.6.1586.0

    segunda-feira, 7 de novembro de 2016 21:10

Respostas

  • Olá Bruno,

    Utiliza o seguinte código e verifica como está o seu retorno.

    public List<Harley> findAll()
            {
    
                var list = new List<Harley>();
    
                try
                {  
                    var json = new WebClient().DownloadString(BASE_URL + "findAll");
                    list = new JavaScriptSerializer().Deserialize<List<Harley>>(json);
                    return list != null ? list : new List<Harley>();
                }
                catch
                {
                    list = new List<Harley>();
                }
            }


    Klayton Gomes (Software Architecture) MCP/MCTS/MCAD/MCPD/MCSD Solution Developer

    terça-feira, 8 de novembro de 2016 11:57

Todas as Respostas

  • Você preencheu ViewBag.listHarleys na action Index da sua controller Harley?

    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    terça-feira, 8 de novembro de 2016 10:05
  • Usei sim 

     public class HarleyController : Controller
        {
            //
            // GET: /Harley/

            public ActionResult Index()
            {
                HarleyServiceCliente hsc = new HarleyServiceCliente();
                ViewBag.listHarleys = hsc.findAll();
                return View();
            }

        }

    terça-feira, 8 de novembro de 2016 11:02
  • Olá Bruno,

    Verifique se o método FindAll está retornando a lista ou se ela está retornando o valor nulo.

    Se estiver retornando nulo, aconselho a você a modificar o retorno dela para que quando não encontrar resultado retorne uma lista vazia, dessa forma você não precisará realizar nenhuma validação para objeto nulo.


    Klayton Gomes (Software Architecture) MCP/MCTS/MCAD/MCPD/MCSD Solution Developer

    terça-feira, 8 de novembro de 2016 11:32
  • meu findAll está retornando a lista

     public List<Harley> findAll()
            {
                try
                {
                    var webcliente = new WebClient();
                    var json = webcliente.DownloadString(BASE_URL + "findAll");
                    var js = new JavaScriptSerializer();
                    return js.Deserialize<List<Harley>>(json);
                }
                catch
                {
                    return null;
                }
            }

    terça-feira, 8 de novembro de 2016 11:49
  • Olá Bruno,

    Utiliza o seguinte código e verifica como está o seu retorno.

    public List<Harley> findAll()
            {
    
                var list = new List<Harley>();
    
                try
                {  
                    var json = new WebClient().DownloadString(BASE_URL + "findAll");
                    list = new JavaScriptSerializer().Deserialize<List<Harley>>(json);
                    return list != null ? list : new List<Harley>();
                }
                catch
                {
                    list = new List<Harley>();
                }
            }


    Klayton Gomes (Software Architecture) MCP/MCTS/MCAD/MCPD/MCSD Solution Developer

    terça-feira, 8 de novembro de 2016 11:57
  • Cara deu certo. Grato pela sua ajuda!



    terça-feira, 8 de novembro de 2016 12:04