Estou escrevendo um aplicativo "Curso" em ASP.NET Core MVC. Quando tento aplicar algum curso, ele não retorna nenhum valor para SelectedCourse
. tentei
<input id "mvc1" type="radio" asp-for="SelectedCourse"value="ASP.NET Core MVC" checked="true" />
mas não funcionou.
Apply.cshtml
:
<div>
<fieldset></fieldset>
<legend>Select One(1) Course</legend>
<p>
<input id "mvc1" type="radio" asp-for="SelectedCourse"value="ASP.NET Core MVC" checked="true" />
<label>ASP.NET Core MVC</label>
</p>
<p>
<input id "mvc2" type="radio" asp-for="SelectedCourse" value="Blazor" />
<label>Blazor</label>
</p>
<p>
<input id "mvc3" type="radio" asp-for="SelectedCourse"value="API" />
<label>Api</label>
</p>
</div>
Repository.cs
:
namespace BTK_Akademi.Models
{
public static class Repository
{
private static List<Candidate> applications = new();
//Listenin dışardan düzenlenmemesi lazım yani readonly olacak
public static IEnumerable<Candidate> Applications => applications;
public static void Add(Candidate candidate)
{
applications.Add(candidate);
}
}
}
Com base no seu código compartilhado, pode ser devido à inicialização do seu modelo em vista. Se
asp-for="SelectedCourse"
não tiver sido definido enquanto você carrega a visualização, durante o envio do formulário ele pode não se vincular ao seu métodoApply(Candidate candidate)
of[HttpPost]
no controlador, o que pode causar dados nulos.Além disso, lembre-se de que deve estar dentro
<form asp-action="Apply" method="post">
do que você está faltando.Então, basicamente, seu modelo não foi vinculado de acordo.
Vamos dar uma olhada em como você deve fazer isso corretamente:
Modelo:
Carregar visualização:
Visualizar:
Envio do formulário de método de ação:
Saída:
Você tem um erro de sintaxe no seu
Apply.cshtml
arquivo. Mudeid "mvc1"
paraid="mvc1"
na entrada do botão de opção.