Перед этим я разместил вопрос о выборе выпадающего списка и отображении соответствующих данных. Я смог добиться некоторого прогресса, но у меня проблема в методе HttpGet .
PS: я заполняю раскрывающийся список таблицей из базы данных (функция getIDs делает это). Однако (функция getStuff) отображает данные с использованием View.
Модель класса:
public string R_ID {get; set;}
public string Summary{get; set;}
public int Estimate {get; set;}
public List<Hello> getIDs() //Populated via a table in the DB
{
var que = (from wre in db.Table
select new Hello{
R_ID = wre.ID
}).toList();
}
Класс контроллера:
public ActionResult Index(string IDParam)
{
var model = test.getStuff(IDParam);
ViewBag.IDs= new SelectList(test.getIDs(), "", "R_ID");
}
[HttpGet]
public JsonResult getDataBySelectedID(string selectedId) //selectedID = 21
{
var data = (from wre in db.View
where wre.R_ID == selectedId //selectedId = 21
select new Hello
{
R_ID = wre.ID
Summary = wre.Summary,
Estimate = wre.Estimate
}).toList();
return Json(data, JsonRequestBehavior.AllowGet); //data = null; ???
}
Просмотр класса:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#IDs").on("change", function () {
debugger;
var selectedId = this.value;
var url = "/Sample/getDataBySelectedID";
$.ajax({
dataType: "json",
method: "GET",
url: url,
data: { selectedId: selectedId }
});
});
</script>
@Html.DropDownList("IDs", ViewBag.Releases as SelectList)
Если вы посмотрите на комментарии в методе HttpGet (класс контроллера), то здесь возникает проблема.
Проблемы:
1) Переменная data не получает selectedID , следовательно, JSon ничего не возвращает.
2) Я меняю идентификаторы из выпадающего списка, но selectedID остается с тем же идентификатором. Например, в комментариях я использовал 21 , но если я выберу 22 * 1037 *, selectedID не изменится. Он остается на 21 .
