Технологии:
- ASP .NET MVC2
- JQuery v3
Мой код выглядит следующим образом:
Контроллер:
public ActionResult Create()
{
ViewData["department"] = new SelectList(_db.department.ToList(), "idDepartment", "department", 1);
ViewData["municipality"] = new SelectList(_db.municipality.Where(m => m.idDepartment == 1).ToList(), "idMunicipality", "municipality", 1);
return View();
}
[HttpPost]
public JsonResult Ajaxmuni(int? Id)
{
var data = _db.municipality.Where(m => m.idDepartment == Id).ToList();
return this.Json(data);
}
Вид (передний план)
<script type="text/javascript">
$(document).ready(function () {
$('#department').change(function () {
var $idDepart = $('#department').val();
$.ajax({
url: "/Filegeneral/Ajaxmuni",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
cache: false,
data: { Id: $idDepart},
success: function (data) {
alert("data: " + data);
},
error: function (xhr) {
alert("Error" + xhr);
}
});
});
});
</script>
<label for="department">Select deparment</label>
<%: Html.DropDownList("department", null, new { @class = "form-control"})%>
<label for="municipality">Select municipality</label>
<%: Html.DropDownList("municipality", null, new { @class = "form-control"})%>
Действие Ajaxmuni не получает значение, которое я отправил с ajax, если я переключусь на GET, я получу его, но я не хочу, чтобы оно было получено с помощью GET, но с помощью POST. Теперь, когда я делаю это для GET, я получаю идентификатор отдела, но не могу получить список в представлении клиента. как мне это решить.
UPDATE
Мне удалось решить ту часть, в которой я не смог получить значение Id в действии, выполнив следующее:
<script type="text/javascript">
$(document).ready(function () {
$('#department').change(function () {
var $idDepart = $('#department').val();
$.ajax({
url: "/Filegeneral/Ajaxmuni",
type: "POST",
cache: false,
data: { Id: $idDepart},
success: function (data) {
alert("data: " + data);
},
error: function (xhr) {
alert("Error" + xhr);
}
});
});
});
В контроллере:
[HttpPost]
public JsonResult Ajaxmuni(int? Id)
{
var data = _db.municipality.Where(m => m.idDepartment == Id).Select(m => new{ m.idMunicipality, m.municipality});
return this.Json(data);
}
сейчас я не знаю, как извлечь данные в представлении, метод
alert("data:" + data);
месяц показывает следующее:
введите описание изображения здесь
как извлечь данные?