1
I have a partial view (in this case, one of those Razor Pages) of type "Create" created from a table in SQL Server (which is stored as an entity of a model in my application).
@model Candidaturas.Models.DadosPessoai
@using (Html.BeginForm("AddOrEdit", "DadosPessoais", FormMethod.Post))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.NomeColoquial, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.NomeColoquial, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.NomeColoquial, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Nomes, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Nomes, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Nomes, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Apelidos, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Apelidos, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Apelidos, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.NomePai, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.NomePai, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.NomePai, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.NomeMae, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.NomeMae, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.NomeMae, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.NDI, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.NDI, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.NDI, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.TipoDocID, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.TipoDocID, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.TipoDocID, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Genero, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Genero, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Genero, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.EstadoCivil, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.EstadoCivil, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.EstadoCivil, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Nacionalidade, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Nacionalidade, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Nacionalidade, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.DistritoNatural, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.DistritoNatural, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.DistritoNatural, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Concelho, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Concelho, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Concelho, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Freguesia, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Freguesia, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Freguesia, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Morada, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Morada, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Morada, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Localidade, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Localidade, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Localidade, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Salvar" class="btn btn-default" />
</div>
</div>
</div>
}
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
However, some of the fields appear as text inputs when this is not what I want. For example, I have a "Genero" input that appears as normal text input that I would like to make a dropdown list and popular with values from an SQL table. As I don’t have much experience in ASP.NET (let alone dealing with Razor Pages), what’s the best approach to follow?
You can use a
DropDownListFor
in place of inputs, here is an answer with a good example: How to Create Dropdownlist in ASP.NET MVC 4– Ricardo Pontual
I tried following this example but got the following error: The value cannot be null. Name of the parameter: source
– brupal89
I ended up solving the error by creating Selectlistitem in the backend.
– brupal89