在此之前,我发布了一个问题,有关选择下拉列表并显示适当的数据。我能够取得一些进步,但是 HttpGet 方法遇到了问题。
PS:我正在使用数据库中的表填充下拉列表(getIDs函数可以完成此操作)。但是,(getStuff函数)使用视图显示数据。
模型类:
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)我正在从下拉列表中更改ID,但 selectedID 保持相同的ID。例如,在注释中,我使用了 21 ,但是如果选择 22 ,则 selectedID 不会改变。它停留在 21 上。