У меня есть 2 метода действий, один из них работает как метод «Get», но показывает список и просто получает 1 значение от пользователя.Другой обновляет базу данных полученным значением.Однако, похоже, что я не передаю это значение второму контроллеру, так как вижу, что оно составляет null
при отладке кода.Может ли кто-нибудь помочь найти мою ошибку?
Методы действия:
[AllowAnonymous]
public ActionResult AvaliaAluno()
{
var user = User.Identity.GetUserId();
if (User.IsInRole("Docentes") || User.IsInRole("Comissao"))
{
Docente d = db.Docentes.SingleOrDefault(x => x.UserId == user);
var vm = new ViewModels
{
Propostas = db.Propostas.Where(x => x.DocenteId == d.DocenteId).ToList(),
Alunos = db.Alunos.ToList(),
Candidaturas = db.Candidaturas.ToList()
};
return View(vm);
}
if (User.IsInRole("Empresas"))
{
Empresa d = db.Empresas.SingleOrDefault(x => x.UserId == user);
var vm = new ViewModels
{
Propostas = db.Propostas.Where(x => x.EmpresaId == d.EmpresaId).ToList(),
Alunos = db.Alunos.ToList(),
Candidaturas = db.Candidaturas.ToList()
};
return View(vm);
}
return View();
}
[AllowAnonymous]
public ActionResult ConfirmaAvaliacao(int id, decimal? avaliacao)
{
Candidatura c = db.Candidaturas.SingleOrDefault(x => x.CandidaturaId == id);
Proposta p = db.Propostas.SingleOrDefault(x => x.PropostaId == c.PropostaId);
if (User.IsInRole("Docentes") || User.IsInRole("Comissao"))
{
p.AvaliacaoDocenteAluno = avaliacao;
return RedirectToAction("AvaliaAluno");
}
if (User.IsInRole("Empresas"))
{
p.AvaliacaoEmpresaALuno = avaliacao;
return RedirectToAction("AvaliaAluno");
}
return RedirectToAction("Index", "Home");
}
и вид:
@model DEIS_ISEC.Models.ViewModels
<h3>Alunos Orientados por si</h3>
<table class="table">
<tr>
<th>
Nome do Aluno
</th>
<th>
Número do Aluno
</th>
<th>
Ramo Inscrito
</th>
<th>
Titulo da Proposta
</th>
<th>
Ramo da Proposta
</th>
<th>
Data de Início
</th>
<th>
Data de Fim
</th>
<th>
Avaliar
</th>
<th></th>
</tr>
@foreach (var item in Model.Propostas)
{
<tr>
@foreach (var c in Model.Candidaturas)
{
if (c.PropostaId == item.PropostaId)
{
foreach (var a in Model.Alunos)
{
if (a.AlunoId == c.AlunoId)
{
<td>
@Html.DisplayFor(modelItem => a.Nome) @Html.DisplayFor(modelItem => a.Apelido)
</td>
<td>
@Html.DisplayFor(modelItem => a.NumeroAluno)
</td>
<td>
@Html.DisplayFor(modelItem => a.Ramo)
</td>
}
}
}
}
<td>
@Html.DisplayFor(modelItem => item.Titulo)
</td>
<td>
@Html.DisplayFor(modelItem => item.Ramo)
</td>
<td>
@Html.DisplayFor(modelItem => item.DataInicio)
</td>
<td>
@Html.DisplayFor(modelItem => item.DataFim)
</td>
<td>
@Html.EditorFor(modelItem => item.AvaliacaoDocenteAluno, new { htmlAttributes = new { @class = "form-control", @style = "width:50% !important; min-width:50px;" } })
@Html.ValidationMessageFor(modelItem => item.AvaliacaoDocenteAluno, "", new { @class = "text-danger" })
</td>
<td>
@Html.ActionLink("Guardar", "ConfirmaAvaliacao", new { id = item.CandidaturaId, avaliacao = item.AvaliacaoDocenteAluno }, new { @class = "btn btn-info btn-md" })
</td>
</tr>
}
Я считаю, что моменткогда я получаю ввод от пользователя здесь:
@Html.EditorFor(modelItem => item.AvaliacaoDocenteAluno, new { htmlAttributes = new { @class = "form-control", @style = "width:50% !important; min-width:50px;" } })
@Html.ValidationMessageFor(modelItem => item.AvaliacaoDocenteAluno, "", new { @class = "text-danger" })
что-то неожиданное происходит.