I'm building a C# ASP.NET MVC WebPage to display a SQL Server data table, the method i'm getting errors in is "public ActionResult Pessoas()".
[EDIT]: So, after a debug, this is the error i got on the line 19 of my view, the foreach function:
System.NullReferenceException
HResult=0x80004003
Message=object reference not set to an instance of an object
Source=App_Web_dzejebtt
StackTrace:
at ASP._Page_Views_Home_Index_cshtml.Execute() in C:\ConsultaPessoas\ConsultaPessoas\ConsultaPessoas\Views\Home\Index.cshtml:line 19
And as asked, this is my route file:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace ConsultaPessoas
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
}
This is my view:
@{
ViewBag.Title = "Home Page";
}
@using ConsultaPessoas.Controllers;
@using ConsultaPessoas.Models
@model IEnumerable<Pessoa>
@using ConsultaPessoas.Controllers;
<h1>Consulta de Pessoas</h1>
<table>
<tr>
<th>Matricula</th>
<th>Login</th>
<th>Nome</th>
</tr>
@foreach (var pessoa in Model)
{
<tr>
<td>@pessoa.Matricula</td>
<td>@pessoa.Login</td>
<td>@pessoa.Nome</td>
</tr>
}
</table>
and this is my Controller:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Data.Odbc;
using System.Data.Common;
using System.Data.SqlClient;
using ConsultaPessoas.Models;
using System.Web.UI.WebControls;
namespace ConsultaPessoas.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult About()
{
ViewBag.Message = "Your application description page.";
return View();
}
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
public ActionResult Pessoas()
{
String connectionString = "<Data Source = SERVER; + Initial Catalog = DATABASE; + User Id = User; + Password = Password>";
String sql = "SELECT * FROM Pessoas";
SqlCommand cmd = new SqlCommand(sql);
var model = new List<Pessoa>();
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
var pessoa = new Pessoa();
pessoa.Matricula = rdr["Matricula"].ToString();
pessoa.Login = rdr["Login"].ToString();
pessoa.Nome = rdr["Nome"].ToString();
model.Add(pessoa);
}
ViewBag.ListPessoa = model;
return View(model);
}
}
}
}
However, I wasn't able to make it work, I tried all possible changes to the application, and as soon as I run the program, I get those '/' error in application pages, with 404 code. What am I doing wrong here?
Thanks in advance!
User contributions licensed under CC BY-SA 3.0