2
When I enter the registration details by the ID index it is always null.
Controller Details:
public ActionResult Detalhes(int? id)
{
var disponibilidade = db.Disponibilidade.Where(d => d.DisponibilidadeID == id).FirstOrDefault();
if (disponibilidade == null)
{
return new HttpNotFoundResult();
}
DisponibilidadeViewModel model = new DisponibilidadeViewModel()
{
AnoPastoral = disponibilidade.AnoPastoral,
DiaDisponivel = disponibilidade.DiaDisponivel,
HoraDisponivel = disponibilidade.HoraDisponivel,
Observacoes = disponibilidade.Observacoes
};
return View(model);
}
Create controller:
public ActionResult CriarDisponibilidade([Bind(Include = "DisponibilidadeID,AnoPastoral,DiaDisponivel,HoraDisponivel,Observacoes,CatequistaID")] Disponibilidade disponibilidade)
{
if (ModelState.IsValid)
{
db.Disponibilidade.Add(disponibilidade);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(disponibilidade);
}
Action Index:
@model IEnumerable<WebAppCatechesis2.ViewModels.DisponibilidadeViewModel>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_mytemplate.cshtml";
}
<div id="page-wrapper">
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">Lista Disponibilidades de cada catequista</h1>
</div>
<!-- /.col-lg-12 -->
</div>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
Futuramente vai ter aqui opções
</div>
<div class="panel-body">
<div class="table-responsive">
<table class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th class="info">
Nome do Catequista
</th>
<th class="info">
AnoPastoral
</th>
<th class="info">
DiaDisponivel
</th>
<th class="info">
HoraDisponivel
</th>
<th class="info">
Observacoes
</th>
<th class="info">
Opções
</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(model => item.Nome)
</td>
<td>
@Html.DisplayFor(model => item.AnoPastoral)
</td>
<td>
@Html.DisplayFor(model => item.DiaDisponivel)
</td>
<td>
@Html.DisplayFor(model => item.HoraDisponivel)
</td>
<td>
@Html.DisplayFor(model => item.Observacoes)
</td>
<td>
@Html.ActionLink("Editar", "Editar", new { id = item.DisponibilidadeID }) |
@Html.ActionLink("Detalhes", "Detalhes", new { id = item.DisponibilidadeID }) |
@Html.ActionLink("Apagar", "Apagar", new { id = item.DisponibilidadeID })
</td>
</tr>
}
</tbody>
</table>
</div>
<!-- /.table-responsive -->
</div>
<!-- /.panel-body -->
</div>
<!-- /.panel -->
</div>
<!-- /.col-lg-6 -->
</div>
</div>
Viewmodel:
public class DisponibilidadeViewModel
{
public int DisponibilidadeID { get; set; }
public String Nome { get; set; }
public String AnoPastoral { get; set; }
public String DiaDisponivel { get; set; }
public String HoraDisponivel { get; set; }
public String Observacoes { get; set; }
}
You can put in your question how you are doing to call this URL?
– Leonel Sanches da Silva
I have already added the amendment
– Simão Lopes
The link is called a View associated with
DisponibilidadeController
? You should not go ID 0. Can you tell me why the link is being generated with this ID 0?– Leonel Sanches da Silva
If the id is manually placed in the url it works perfectly. But I don’t understand why it is 0.
– Simão Lopes
Yes, the problem is obviously the link. You can put in your question to Action that saves an availability?
– Leonel Sanches da Silva
My availabilities are being stored correctly. With the correct Ids.I will put the complete View.
– Simão Lopes
Let’s go continue this discussion in chat.
– Simão Lopes
On top is the action of jumps an availability.
– Simão Lopes