我有一个级联的DropDownList,但在第二个下拉列表中,当我将数据发布到控制器时,我的动作接收的对象中的valeu属性为null,我不知道为什么。
我的控制器。
[HttpPost]
public JsonResult ListaEstados(String id)
{
var estados = Util.getEstados(id);
return Json(estados);
}
[HttpPost]
public ActionResult AddCidade(Cidade c)
{
c.Cadastrar(c);
return RedirectToAction("AddCidade");
}
我的观点
@model Projeto_P1.Models.Cidade
@{
ViewBag.Title = "Cadastro de Cidades";
}
@using (Html.BeginForm("AddCidade", "Geral", FormMethod.Post))
{
<div class="container">
<fieldset>
<div>
@Html.Label("Cidade")
@Html.EditorFor(model => model.Nome)
</div>
<div>
@Html.Label("País")
@Html.DropDownList("Pais", (SelectList)ViewData["paises"], "Selecione", new { id = "PaisID"})
</div>
<div>
@Html.Label("Estado")
@Html.DropDownListFor(model => model.Estado, Enumerable.Empty<SelectListItem>(), "Selecione")
</div>
<br />
<input type="submit" value="Cadastrar" />
</fieldset>
</div>
}
<script type="text/javascript">
$(document).ready(function () {
$("#PaisID").change(function () {
$.ajax({
url: "ListaEstados",
type: 'POST',
data: { ID: $(this).val() },
datatype: 'json',
success: function (data) {
var elements = "";
$.each(data, function () {
elements = elements + '<option values="' + this.ID + '">' + this.Nome + '</option>'
})
$('#Estado').empty().attr('disabled', false).append(elements);
}
});
});
});
</script>
答案 0 :(得分:0)
我解决了我的问题,ajax代码中有一个S,我还没看到它:elements = elements + '<option values="' + this.ID..
。
我接受它并且它起作用了。