Galera to com o seguinte problema: tenho um dropdownlist com os nomes dos cargos existentes e nesses cargos, há uma quantidade disponível. Com isso, caso a pessoa selecione um cargo que não esteja mais disponível, ele retorne a mensagem no @Html.ValidationMessageFor.
Até o momento meu código está assim:
CLASSE CARGO
public class Cargo
{
public int Id { get; set; }
public string Nome { get; set; }
public int Quantidade { get; set; }
}
CLASSE USUÁRIO
public class Usuario
{
public int Id { get; set; }
[Required()]
public string Nome { get; set; }
[Remote("VerificarQuantidade", "Usuario")]
public int IdCargo { get; set; }
public virtual Cargo cargo { get; set; }
}
MÉTODO DA VALIDAÇÃO REMOTA (ESTÁ NO CONTROLLER HOME)
public JsonResult VerificarQuantidade(int id)
{
var cargo = db.Cargoes.Find(id);
if (cargo.Quantidade > 0)
{
return Json(true, JsonRequestBehavior.AllowGet);
}
return Json("Vagas já preenchidas para o cargo selecionado!", JsonRequestBehavior.AllowGet);
}
VIEW DE CADASTRO DO USUÁRIO
@model Atividade22_05.Models.Usuario
@{
ViewBag.Title = "Create";
}
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
@Html.ValidationSummary(true)
<div class="form-group">
<label class="col-md-3 control-label" for="Nome">NOME</label>
<div class="col-md-7">
@Html.EditorFor(model => model.Nome,)
@Html.ValidationMessageFor(model => model.Nome)
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label" for="IdCargo">CARGO</label>
<div class="col-md-6">
@Html.DropDownList("IdCargo", (IEnumerable<SelectListItem>)ViewBag.PriorityID, new { @class = "form-control", @required = "" })
@Html.ValidationMessageFor(model => model.IdCargo)
</div>
</div>
<div class="form-group">
<div class="col-md-offset-5 col-md-5">
<input type="submit" value="Cadastrar" id="Enviar" class="btn btn-primary" />
<button type="reset" name="limpar" id="Limpar" class="btn btn-danger"> Limpar </button>
</div>
</div>
</div>
}