Usuário com melhor resposta
Erro view

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
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
- Marcado como Resposta Bruno Brandão da Silva terça-feira, 8 de novembro de 2016 12:03
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".
-
-
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
-
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;
}
} -
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
- Marcado como Resposta Bruno Brandão da Silva terça-feira, 8 de novembro de 2016 12:03
-
Cara deu certo. Grato pela sua ajuda!
- Editado Bruno Brandão da Silva terça-feira, 8 de novembro de 2016 12:09