For this, you can do a method that returns all users in Json
to their controller
, it would look like this:
GetPorId method in controller:
public JsonResult ObterPorId(int id)
{
//ViewBag para listar todos os usuários
ViewBag.Usuarios = Context.Usuarios.ToList()
.Select(e => new SelectListItem
{
Value = e.UsuarioId.ToString(),
Text = e.Nome,
});
var usuarios= context.usuarios.where(u => u.id == id).FirstOrDefault();
return Json(usuarios, JsonRequestBehavior.AllowGet);
}
And in your View
, you can use the query Ajax
, as @KaduAmaral suggested, thus:
View:
<div class="col-md-2">
Usuarios:
@Html.DropDownList("ddlUsuarios", new SelectList(ViewBag.Usuarios, "value", "text"), new { @class = "form-control" })
</div>
id: <input id="id" name="id" /><br/>
Nome: <input id="nome" name="nome" /><br />
Cpf: <input id="cpf" name="cpf" />
@section Scripts {
<script type="text/javascript">
$('#ddlUsuarios').change(function () {
// Valor atual selecionado
var user = $(this).val();
$.ajax({
url: @Url.Content("~/") +'Usuarios/ObterPorId',
type: 'GET',
dataType: 'json',
// No servidor com C# vai receber como Request.QueryString["usuario"]
data: { id: user },
success: function (json) {
// "nome" deve ser o id do campo input ex:
// <input type="text" name="nome-do-usuario" id="nome">
// Segue mesma regra para demais campos
//Lembrando que aqui e sensitive case, ou seja, diferenciando letras maiúsculas de minúsculas.
$('#id').val(json.id);
$('#nome').val(json.nome);
$('#cpf').val(json.cpf);
},
error: function (e) {
alert("Deu algo errado, examine o console para mais detalhes");
console.log(e);
}
});
});
</script>
}